# AI

# Graphyflow MCP

## Connecting GraphyFlow to Claude and ChatGPT

<div class="mb-2 last:mb-0" id="bkmrk-you%27ll-need%3A">**You'll need:**</div>- A GraphyFlow staff account.
- The server URL: `https://graphyflow.com/mcp`. Type it exactly like that: `https`, no `www`, no slash at the end.

<div class="mb-2 last:mb-0" id="bkmrk-both-assistants%3A">**Both assistants:**</div>- You sign in with your own GraphyFlow login, and the assistant acts as you. It can only see and change what your account is allowed to.
- To disconnect, remove the connector in the assistant, or revoke its access in GraphyFlow.

---

### Claude (claude.ai and the Claude desktop app)

1. Open **Settings → Connectors**.
2. Click **Add custom connector**.
3. Fill in: 
    - **Name:** `GraphyFlow`
    - **Remote MCP server URL:** `https://graphyflow.com/mcp`
    - Leave **Advanced settings** (OAuth client ID and secret) empty.
4. Click **Add**, then **Connect**.
5. A GraphyFlow sign-in page opens. Log in, review the permissions, and click **Allow**.
6. You're returned to Claude, and the connector shows as connected with its tools listed.

<div class="mb-2 last:mb-0" id="bkmrk-to-use-it%3A-start-a-n">**To use it:** start a new chat, open the tools menu (the **+** or sliders icon under the message box), and make sure **GraphyFlow** is switched on. Then just ask, for example: *"Find the contact who called from 01234 567890."*</div><div class="mb-2 last:mb-0" id="bkmrk-teams%3A-on-a-claude-t">**Teams:** on a Claude Team or Enterprise plan, an owner can add the connector once under **Admin settings → Connectors**. Each person then only needs to click **Connect** and sign in.</div>---

### ChatGPT

1. Open **Settings → Apps &amp; Connectors** and click **Create**.
2. Fill in: 
    - **Name:** `GraphyFlow`
    - **Description:**
    - #### GraphyFlow Staff MCP
        
        <div class="mb-2 last:mb-0">The GraphyFlow Staff MCP connects AI assistants such as Claude and ChatGPT to GraphyFlow and MaticTrack. Staff can look up and update business data by asking in plain language, without opening the app.</div><div class="mb-2 last:mb-0">It runs at `https://graphyflow.com/mcp`. Each person signs in with their own GraphyFlow account (OAuth), and the assistant acts **as that person**: it can only see and change what that user's role and the scopes they approved allow. Every change is recorded against the user, the same as if they'd made it in GraphyFlow. The server has no AI of its own; it only passes requests to the Staff API.</div>##### Catalogue
        
        
        - **`product_search`, `product_get`:** find products and look up a product by SKU.
        
        ##### Customers (CRM)
        
        
        - **`contact_search`:** find contacts by email (or everyone at an `@domain`), name, company or phone.
        - **`contact_get_by_phone`:** identify a caller from a phone number, including any extra numbers on the contact.
        - **`contact_create`:** add a contact to an existing company, or create the company at the same time. It checks for duplicates first.
        
        ##### Sales quotes
        
        
        - **`sales_quote_create`:** build a complete quote in one step: customer, title, notes, an optional linked CS ticket, and every line (product by ID or SKU, with quantities or sizes).
        - **`sales_quote_append_version`:** add a new draft version to an existing quote, with extra lines.
        
        ##### Assets, tools and storage locations
        
        
        - **`asset_search`, `asset_get`:** find plant, equipment and tools. Look one up by the code on its QR label (e.g. `TL-0042`) to see where it's stored, its current production tasks and its maintenance plans.
        - **`asset_create`, `asset_move`:** register new assets and move them between locations. Moves are logged on the asset.
        - **`location_search`, `location_create`, `location_update`:** manage the storage location tree (site, bay, beam, shelf, bench).
        
        ##### Stock
        
        
        - **`stock_set_location`, `stock_item_set_location`:** set where a stock record, or an individual roll or sheet (by its label, e.g. `i123`), is stored. Each move is logged as a note.
        
        ##### Everything else in the Staff API
        
        
        - **`staff_api_search`, `staff_api_describe`:** search and inspect every Staff API operation: orders, quotes, customers, production jobs, stock, dispatch, invoices, reports and more.
        - **`staff_api_get`:** run any read-only operation as the signed-in user.
        - **`staff_api_write`:** run create, update and delete operations, but only on endpoints the server explicitly allows. On the current dev settings that's products, quotes and quote lines, locations and plant/tools. No other deletes are allowed.
        
        ##### Example requests
        
        
        - "Who called from 01234 567890, and what have they ordered recently?"
        - "Quote Acme Ltd for 4 PVC banners, 2 m × 1 m, with hemmed edges, and link it to ticket 5521."
        - "Where's ladder TL-0042, and is it booked on a job this week?"
        - "Move roll i4471 to bay 3, shelf B."
        - "Show me last month's unpaid invoices over £1,000."
        
        ##### Safety
        
        
        - Each user signs in themselves. Tokens are short-lived and can be revoked in GraphyFlow at any time.
        - Writes have to pass three checks: the user's own permissions, the scopes they approved, and the server's write allowlist.
        - No passwords or secrets are ever returned. Large results are trimmed.
    - **Server URL:** `https://graphyflow.com/mcp`
    - **Authentication:** `OAuth`. Leave **Advanced OAuth settings** alone; ChatGPT finds the GraphyFlow sign-in on its own.
3. Tick **I understand and want to continue**, then click **Create**.
4. Sign in to GraphyFlow when prompted and click **Allow**.

<div class="mb-2 last:mb-0" id="bkmrk-to-use-it%3A-in-a-new-">**To use it:** in a new chat, click **+** and select **GraphyFlow**. ChatGPT asks you to confirm before running any tool that changes data.</div>---

### If it doesn't connect

<div class="my-3 overflow-x-auto rounded-lg border border-border" id="bkmrk-what-you-see-fix-%22co"><table class="my-0 min-w-full border-collapse text-sm"><thead class="bg-muted/60"><tr class="[&:last-child>td]:border-b-0"><th class="border-b border-border px-3 py-2 text-left font-semibold text-foreground">What you see</th><th class="border-b border-border px-3 py-2 text-left font-semibold text-foreground">Fix</th></tr></thead><tbody><tr class="[&:last-child>td]:border-b-0"><td class="border-b border-border/60 px-3 py-2 align-top">"Couldn't connect" or "returned an error" straight after signing in</td><td class="border-b border-border/60 px-3 py-2 align-top">Click **Reconnect**. If it keeps failing, tell IT the time it happened.</td></tr><tr class="[&:last-child>td]:border-b-0"><td class="border-b border-border/60 px-3 py-2 align-top">The sign-in page says your account can't be used</td><td class="border-b border-border/60 px-3 py-2 align-top">Your GraphyFlow user needs access to the areas you're trying to use. Ask an admin.</td></tr><tr class="[&:last-child>td]:border-b-0"><td class="border-b border-border/60 px-3 py-2 align-top">The tools are missing from a chat</td><td class="border-b border-border/60 px-3 py-2 align-top">Start a **new** chat and switch the connector on from the tools menu.</td></tr><tr class="[&:last-child>td]:border-b-0"><td class="border-b border-border/60 px-3 py-2 align-top">A tool says *permission denied* or *insufficient scope*</td><td class="border-b border-border/60 px-3 py-2 align-top">Your role doesn't include that action, or you didn't approve that permission. Reconnect and approve it, or ask an admin.</td></tr></tbody></table>

</div>