# Proforms MCP

> Proforms connects your AI agent to a full suite of field service management tools. Build custom forms and collect structured data from sites or users. You can list active forms, retrieve specific submissions by ID using `get_submission`, and manage the underlying job lifecycle with tools like `create_job` and `update_job`. It's all accessible via conversation.

## Overview
- **Category:** productivity
- **Price:** Free
- **Tags:** form-builder, data-collection, submission-tracking, data-analysis, webhook, api-integration

## Description

**Proforms gives your AI client direct control over field data collection and operational management.** You don't gotta download a massive CSV file or mess around with spreadsheets; you just talk to the system, and it pulls the exact info you need. This server connects your agent to everything related to job sites, forms, and equipment records. 

**Getting Set Up and Who You're Working With:** Before you start collecting data, you gotta make sure your connection is solid. Use `get_me` to check your API credentials; it confirms if your AI client is talking to Proforms correctly. You can also run `list_users` to see every single user account—both the folks in the back office and those out in the field. It gives you a full picture of who's authorized to do what.

**Handling Forms and Data:** Want to know what data needs collecting? Run `list_forms` to pull up a list of every mobile form available for use. If you need specifics on one particular form, `get_form` pulls all the structural details—you'll see exactly which fields are required and how the form is built. Once people submit that data, you can dive right in. Use `list_submissions` to get a record of every single data set submitted against a specific form ID. If you need everything from one submission instance, `get_submission` pulls all the data points for just that one record.

**Managing Field Jobs:** This server lets your agent handle the entire job lifecycle. You can kick off work by calling `create_job`, which adds a brand-new task right for a field worker to tackle. To see what's going on with existing tasks, run `list_jobs` to get an overview of all active and finished jobs. If you need the full status history on one specific job, use `get_job`. And if a job needs adjusting—maybe the assigned person changed or the status needs updating—`update_job` modifies those key details in place.

**Tracking Equipment:** You don't wanna lose track of your gear. Use `list_assets` to pull up a list of every piece of registered equipment in the whole system. When you know exactly which asset you need info on, `get_asset` pulls the full technical sheet for that specific machine. It's all about tracking physical items and making sure they're working right.

**It’s All Conversational:** You manage form structures, track every submission, handle job assignments, and check inventory—it happens entirely through conversation with your agent. Proforms gives you a complete, unified view of field operations that doesn't rely on manual data exports.

## Tools

### create_job
Adds a brand-new job task for a field worker to complete.

### get_asset
Pulls the full details sheet for one specific piece of registered equipment.

### get_form
Retrieves all structural information about a single, defined form.

### get_job
Gets the current status and history for an existing field job task.

### get_me
Checks if your AI client is connected correctly and verifies user context credentials.

### get_submission
Retrieves all data points from one specific form submission record.

### list_assets
Lists every single equipment asset currently registered in the system.

### list_forms
Shows a list of every available mobile form you can use for data collection.

### list_jobs
Provides an overview listing all active and completed field job tasks.

### list_submissions
Lists the records of data submissions made against a specific form ID.

### list_users
Shows every user account registered in both the back office and the field.

### update_job
Modifies key details—like status or assigned personnel—on an existing job task.

## Prompt Examples

**Prompt:** 
```
List all active forms in my account.
```

**Response:** 
```
You have 2 active forms: 'Customer Feedback Survey' and 'Event Registration'.
```

**Prompt:** 
```
Fetch the latest responses for form ID 8901.
```

**Response:** 
```
Here are the last 3 submissions... User 'Alice' rated 5 stars, user 'Bob' requested support.
```

**Prompt:** 
```
Summarize the feedback from 'Customer Feedback Survey'.
```

**Response:** 
```
Out of 50 responses, 80% rated the service as 'Excellent'. The main complaint is regarding delivery times.
```

## Capabilities

### Manage Form Structure
List all available forms using `list_forms` or pull the specific details of one form with `get_form`.

### Process Submitted Data
Pull full submission records for a single instance via `get_submission`, or list every data point submitted against a form using `list_submissions`.

### Coordinate Field Operations
Manage the job lifecycle by pushing new tasks (`create_job`), retrieving status updates (`get_job`), and modifying existing jobs in place (`update_job`).

### Inventory and User Context
List all registered equipment assets with `list_assets` or check the API connection health using `get_me`.

## Use Cases

### Quickly Triage an Open Job
A field tech reports that Job ID 789 is stuck. Instead of calling the manager, you ask your agent to use `get_job` and then follow up with `list_users` to see who was last assigned. The agent confirms the job status and identifies the last person logged in.

### Analyze a Client's Feedback Spike
A client complains about delivery times. You ask your agent to use `list_forms` to find 'Customer Survey,' then call `get_submission` for that form ID, and finally summarize the data to show exactly what the 50 most recent users complained about.

### Onboard a New Asset
A new piece of equipment arrives. You use your agent to `list_assets` first (to check for duplicates), then call `get_asset` with the serial number, and finally run a command that internally creates the asset record.

### Automate Task Handover
A job is completed. You instruct your agent to use `update_job` to mark it 'Complete,' which triggers the process, and then immediately call `create_job` for the next sequential task assigned to that field worker.

## Benefits

- Stop pulling data manually. Use `list_submissions` to pull all records for a form ID in one go, letting your agent summarize trends immediately.
- Keep track of operations using the job tools. You can use `get_job` and `update_job` to get status updates or change job statuses without opening a web dashboard.
- Never lose context. The server lets you cross-reference data: pull user details via `list_users`, then see which forms they submitted, all in one conversation thread.
- Inventory check is instant. Instead of navigating through asset management pages, just ask the agent to `list_assets` and get a clean list of everything registered.
- The full picture is available. You can link form data to job status by coordinating calls between `get_submission` and `get_job`. The system handles the join.

## How It Works

The bottom line is, your AI client handles the API calls; you just ask for the final answer.

1. Tell your AI agent what data you need—for example, 'Show me submissions for form XYZ.'
2. The agent calls the relevant tool (like `list_submissions`) and receives a structured JSON response containing all the requested field data.
3. Your agent processes this raw data and delivers it back to you in plain English or summarized markdown.

## Frequently Asked Questions

**Can I list all responses for a specific form?**
Yes, provide the Form ID and the agent will fetch all recent submissions and their data fields.

**How do I find out which forms are currently active?**
Ask the AI to list your forms. It will display all your workspaces' forms with their current status.

**Does it support creating forms automatically?**
The current scope focuses on data retrieval and submission analysis. Form creation must be done via the Proforms UI.

**How do I check if my API credentials are working? Can I use the `get_me` tool?**
Use `get_me` to verify connectivity immediately. It returns your user context and confirms the API connection status, so you know right away if the link is solid.

**Do I need a special command to list all registered equipment assets? Should I use `list_assets`?**
Just call `list_assets`. You'll get a manifest of every piece of equipment asset registered in the system, including details you need for tracking.

**How do I modify or update an existing field job? Should I use `update_job`?**
Use `update_job`. You provide the Job ID and the new parameters—like changing a status or adding notes. This modifies the task record directly.

**If I only have one job ID, how do I get all its details? Should I use `get_job`?**
Run `get_job` with that specific Job ID. It pulls all current status information, the task description, and any assigned personnel data points for you to review.

**How do I see who is registered in the system? Can I use `list_users`?**
Call `list_users`. This gives you a full roster of all users, covering both back-office staff and field workers. It helps confirm user roles and details.