claude-codeClaude Code

Connect Claude Code to Urable

Run Claude Code as a hosted agent in NoClick with Urable wired into its tools handle. It can use Urable directly while it works. No glue code, nothing to install. Click below to open a ready-to-run agent and connect your account.
Loading preview…
Opens a workflow with 25 tools ready to use.

Set up in minutes

The open button drops you into a guided setup. It asks exactly this, nothing else:
  1. Choose where it runs

    On your computer through your own Claude Code, or hosted in the cloud. The rest of setup adapts to your choice:

  2. Pick what it can do in Urable

    A preset of real Urable operations. Each one becomes a tool the agent can call, and it can't touch anything outside the list.

  3. Connect Urable

    One sign-in. The agent acts through your account, scoped to the operations you picked.

  4. Add your personal MCP link

    The last step mints a private MCP URL for this agent and walks you through exactly this, with your real link filled in. The page flips to Connected the moment your Claude Code first calls in. Claude Code connects when a session starts — run claude, or restart a running one.

    Run this in your terminal

    $claude mcp add --transport http noclick https://mcp.noclick.app/s/<your-link>

    <your-link> is your personal server URL — setup mints it for you.

Tools Claude Code gets

Pick the operations you want and each becomes a tool the agent can call directly while it works.

Urable

25 tools
List Customers

List customers. Requires scope `customers:read`.

Get Customer

Retrieve a customer. Requires scope `customers:read`.

Create Customer

Create a customer. Requires scope `customers:write`. `firstName` is required (and cannot be blank).

Update Customer

Update a customer. Requires scope `customers:write`. Only supplied fields are changed.

List Items

List items. Requires scope `items:read`.

Get Item

Retrieve an item. Requires scope `items:read`.

Create Item

Create an item. Requires scope `items:write`. `customerId` (must exist) and `name` are required. For `lawnCare`, `location` is also required.

Update Item

Update an item. Requires scope `items:write`. Only supplied fields are changed. Supply `customerId` to move the item to a different customer.

List Products

List products/services. Requires scope `products:read`.

Get Product

Retrieve a product/service. Requires scope `products:read`.

List Categories

List categories. Requires scope `products:read`. Ordered the way the app lists them (by `num`), not newest-first.

List Jobs

List jobs. Requires scope `jobs:read`. Note: ordering by `start`/`end` only returns jobs that have that field set (i.e. scheduled jobs).

Get Job

Retrieve a job. Requires scope `jobs:read`.

Create Job

Create a job. Requires scope `jobs:write`. Send line items as product/service references + quantities; the server looks up prices, embeds the products, and computes the invoice subtotal/tax/total. A sequential `num` is assigned. Requires a customer, an `industry`, at least one `itemId`, and at least one line item. A job's work is always tracked per item, so the invoice comes back with the line items grouped under `invoice.items` — keyed by item ref — rather than as a flat `invoice.lineItems` array. On a job with one item every line item belongs to it; on a job with several, each line item must name its `itemId`, and every item needs at least one line item. A `field` job is performed on site, so it also needs a `location`: send one, or omit it and the customer's location is copied onto the job. It is rejected only when neither exists. A `location` sent on a `shop` job is ignored. If `name` is omitted it defaults to the joined names of the referenced items (e.g. the vehicle names). Jobs are always created `unpaid`. To record an invoice that was already collected, create the job and then record the money with `POST /v1/payments`, which settles the invoice and derives the payment status. When importing history, set `completedAt` to the original completion date along with `status: completed` so the job reports in the right period. The earnings and profit reports only count completed jobs, so `completedAt` without that status is rejected rather than silently leaving the revenue out of every figure. Likewise `canceledAt` requires `status: canceled` in the same request. New jobs pick up the account's default reminders, but the immediate 'job scheduled' confirmation message is suppressed by default so imports can't mass-message customers — pass `deployScheduledMessage: true` to send it (future-dated jobs only, and only when the account's scheduled-message auto-deploy preference is on).

Update Job

Update a job. Requires scope `jobs:write`. Only supplied fields are changed. If `lineItems` is supplied the invoice is recomputed; otherwise the existing invoice is preserved. Because a job's line items are grouped under the item they are for, `itemIds` and `lineItems` move together: send the line items alongside any change to `itemIds` (they are rebuilt against the new set, and items dropped from the job lose their line items). Payment status is derived from the invoice and cannot be set here; record money with `POST /v1/payments`. A supplied `location` replaces the job's address outright (the derived `formattedAddress`, `geoPoint` and `timeZone` are all recomputed). On a job that is or becomes `field` and has no location yet, the customer's is copied onto it; the request is rejected only when neither exists. Changing `type` to `shop` clears the job's location.

List Events

List events. Requires scope `events:read`.

Get Event

Retrieve an event. Requires scope `events:read`.

Create Event

Create an event. Requires scope `events:write`. `name`, `start`, and `end` are required.

List Orders

List orders. Requires scope `orders:read`.

Get Order

Retrieve an order. Requires scope `orders:read`.

List Payments

List payments. Requires scope `payments:read`. Filter by `jobId`, `orderId`, or `subscriptionId` to find the payments applied to a specific record.

Get Payment

Retrieve a payment. Requires scope `payments:read`.

List Proposals

List proposals. Requires scope `proposals:read`. Proposals are read-only via the API. Use `createdAfter` or `updatedAfter` (Unix ms) to poll for new/changed proposals cheaply instead of paging through the full history; supplying either overrides `orderBy` to match the filtered field.

Get Proposal

Retrieve a proposal. Requires scope `proposals:read`.

List Users

List users. Requires scope `users:read`. Returns every team member on the account (not paginated). Users are read-only via the API.

About Claude Code

Claude Code is Anthropic's command-line coding agent. In NoClick you run it as a hosted agent and connect your real apps to its tools handle, so it does far more than write code. Wire in an integration and Claude Code can read and act on Slack, Linear, your database, and more on its own, calling each one as a tool while it works. It is the same capable agent, pointed at your actual workflows instead of a sandbox.
Careful multi-step planning before it acts
Reliable on long, structured tasks
Reads context thoroughly before making changes
Comfortable across code, data, and APIs

Frequently asked questions

More ways to connect

Open your Claude Code agent in one click.

NoClick runs Claude Code for you with Urable wired in as tools. Connect your account and run.