# Paperless Parts MCP

> Paperless Parts lets your AI agent manage your entire manufacturing pipeline—from initial quote to finished order status. It connects natural conversation directly to quoting, account management, and job history for machine shops. You can list quotes, fetch specific customer details by ID, check order requirements, or change a quote's status (like marking it 'Approved') without ever leaving the chat window. This is how you run your shop floor operations using only natural language.

## Overview
- **Category:** erp-operations
- **Price:** Free
- **Tags:** manufacturing, quoting, estimating, 3d-modeling, order-management, job-shop

## Description

Listen up. This isn't just some fancy button you click in a dashboard. You connect your AI agent right here, and it lets you run the whole shop—from when a customer first asks for a price to when the job is shipped out. Your agent speaks natural language and talks directly to all the parts of your manufacturing workflow.

### Managing Accounts and Contacts

You can keep track of every buyer and contact without lifting a finger. If you need an overview, just run `list_accounts` to see a list of every customer account stored in Paperless Parts. Need deep details on one specific company? Use `get_account` with the ID to pull up all their metadata. Want to add a brand-new buyer? You'll use `create_account`, dropping in all the required info.

For people, it works the same way. Run `list_contacts` and you get an index of every contact record on file. To find someone specific, run `get_contact` with their ID to grab their complete profile details. If a client calls who you don't know, you can generate a new entry instantly using `create_contact`, filling in all the necessary professional and personal info.

### Running Quotes and Orders

This is where the money is made. The agent keeps your entire quoting process locked down. You can pull up an index of every quote available with `list_quotes` to see statuses and key IDs fast. Need the full breakdown or calculation for a specific job? Just run `get_quote`, feeding it that unique ID. When a client approves something, you don't need to open ten tabs; you just tell your agent to change the status using `update_quote_status`—say, moving it from 'Draft' right over to 'Approved.'

Similarly, managing orders is straightforward. You can get an index of all active or finished jobs by running `list_orders`. If you need every detail about a specific piece of work, run `get_order` with the tracking ID. Your agent handles the whole cycle so you don't have to juggle spreadsheets.

### Accessing Complex Job Data

Don't forget the deep stuff. Sometimes your routing process is complex, right? You need specialized tables for that. Use `list_custom_tables` to see exactly which custom data structures are available for advanced job shop routing within the system.

## Tools

### create_account
Creates a brand new buyer account in your system using provided details.

### create_contact
Generates a new contact entry, requiring specific personal and professional details.

### get_account
Retrieves all metadata for an existing account using its unique ID.

### get_contact
Fetches the complete profile and details of a single contact by their ID.

### get_order
Retrieves all specific information about an order using its unique tracking ID.

### get_quote
Pulls up the full details and calculation breakdown for a single quote by its ID.

### list_accounts
Returns a list of all customer accounts currently stored in Paperless Parts.

### list_contacts
Provides an index of every contact record in the system.

### list_custom_tables
Lists specialized custom tables used for complex routing within your manufacturing process.

### list_orders
Returns an index of all active or completed orders in the system.

### list_quotes
Provides a list of quotes, showing status and key IDs for quick review.

### update_quote_status
Changes the official status of an existing quote (e.g., 'Pending' to 'Approved').

## Prompt Examples

**Prompt:** 
```
List all our active manufacturing orders on Paperless Parts.
```

**Response:** 
```
I've fetched your environments. You currently have several ongoing orders including 'Aerospace Bracket Q3' (ID: ORD-934) and 'CNC Panel Batch' (ID: ORD-021). Which order would you like to drill into?
```

**Prompt:** 
```
Can you update the status of quote QTE-1205934 to 'Approved'?
```

**Response:** 
```
Executing the status change logic... Quote QTE-1205934 has been successfully marked as 'Approved' and locked into your main production pipeline.
```

**Prompt:** 
```
Provide the details and metadata for account ID 120394.
```

**Response:** 
```
Let's inspect it... Account 'Northwest Defense Systems' is categorized as a primary supplier. Their active billing cycle is set to Net 30, and the primary contact is marked as Amanda T.
```

## Capabilities

### Manage Customer Accounts
You can list all existing customer accounts and create new ones, all through natural conversation.

### Control Order Lifecycle
The agent retrieves specific orders by ID or lists multiple active jobs to check requirements.

### Handle Quoting Workflows
You list all available quotes, pull up details for a quote ID, and change its status (e.g., from 'Draft' to 'Approved').

### Maintain Contact Records
Retrieve specific contact profiles or generate new contacts instantly.

### Access Manufacturing Data
List specialized custom tables needed for complex routing processes used in job shops.

## Use Cases

### Closing a Deal and Setting Up Tracking
A sales lead just signed off on a job. Instead of emailing three different departments to create records, the agent runs `create_account` using the new client's JSON details, then uses `list_contacts` to ensure all key people are added, setting up tracking immediately.

### Checking Order Requirements Mid-Week
A shop manager needs to know if a delayed order (ID: ORD-934) is ready for assembly. They ask the agent, which runs `get_order` and returns the full metadata instantly, letting them communicate precise delays without calling another department.

### Moving a Quote from Draft to Production
The estimator finishes reviewing quote QTE-1205934. Instead of clicking through three menus and hitting 'Submit,' they just ask the agent to 'Approve this quote.' The agent executes `update_quote_status` for them.

### Researching a New Vendor
A new client calls with an ID. You need background info. Your agent runs `get_account`, pulling the billing cycle, primary contact (using `get_contact`), and job history in one go—all before you even hang up.

## Benefits

- **Instant Status Updates:** Don't waste time checking tabs. Use `update_quote_status` to mark a quote as 'Approved' or 'On Hold' directly from your conversation, locking it into the production pipeline immediately.
- **Single Source of Truth:** Need customer details? Instead of jumping between CRM and ERP, use `get_account` and `list_contacts` to pull account metadata and contact profiles together in one chat interaction.
- **Full Order Visibility:** Use `list_orders` or `get_order` to check job requirements instantly. Your agent pulls the raw data so you don't have to navigate complex order IDs across multiple dashboards.
- **Streamlined Data Entry:** When a deal closes, use `create_account` and `create_contact` right away. You avoid manual form filling by sending structured JSON details through your AI client.
- **Contextual Job Access:** The ability to list specialized custom tables with `list_custom_tables` means you can reference the exact manufacturing routing data needed for complex quotes, all within one workflow.

## How It Works

The bottom line is that your AI acts like a dedicated production manager sitting in the chat window, handling API calls you'd normally manage across five different browser tabs.

1. Subscribe to the Paperless Parts server and input your API Token.
2. Tell your AI client what you need—for example, 'List all open quotes for last month.'
3. Your agent executes the necessary tools (like `list_quotes`) and reports back the structured data directly.

## Frequently Asked Questions

**How do I change a quote status using update_quote_status?**
You tell your agent to update the status for a specific ID. For example, 'Update QTE-1205934 to Approved.' The agent runs `update_quote_status` and locks the change into your system.

**Can I list all my manufacturing orders with list_orders?**
Yes. You ask the agent to 'list active orders,' and it executes `list_orders`, providing you an index of everything that's currently in the pipeline for review.

**What is the difference between get_account and list_accounts?**
Use `list_accounts` when you need to see a directory or count how many accounts exist. Use `get_account` when you know the exact ID and only want the detailed data for that single account.

**How do I create new contacts using create_contact?**
You provide all the necessary contact details in a structured format, and the agent runs `create_contact`. This ensures the data is written correctly to your system right away.

**When I call `get_account` with an ID that doesn't exist, what should my AI client expect?**
The server returns a standard 404 Not Found error. You’ll get a JSON payload confirming the missing resource identifier. Your agent needs to handle this specific status code gracefully.

**What is the purpose of using `list_custom_tables`?**
This tool lets you view specialized data tables used in your unique manufacturing process. They hold custom routing rules or product specs that don't fit standard account fields.

**Are there rate limits when I run `list_contacts` on a large directory?**
Yes, the API enforces rate limits to keep things stable. If you exceed the limit, the server sends a 429 Too Many Requests code. Your agent should incorporate backoff logic.

**How do I authenticate my connection when using tools like `list_quotes`?**
You must pass your API token in the request header. The server requires a Bearer Token format string for authentication. Make sure your AI client handles HTTP headers correctly.

**Can my AI automatically find the details of a specific order just by providing the Order ID?**
Yes! Use the `get_order` tool with exactly the Order ID. Your agent will respond with complete metadata and the precise operational notes connected to that order in seconds.

**How do I update the status of a quote during my workflow?**
Simply ask the agent to run the `update_quote_status` action on the target Quote ID and specify the new status. The platform will automatically register the change.

**Does the integration permit creating new customer accounts?**
Yes. The tools include `create_account` and `create_contact` operations, empowering your agent to expand your CRM pipeline dynamically without ever opening the web application.