Coupa MCP server

Prebuilt SnapLogic agentic-tool pipelines that let an LLM read from and act on Coupa, callable as MCP tools via Pipeline Execute. Published in the SnapLogic pattern catalog.

Overview

This pack exposes the Coupa spend-management API through three generic tools: read, create, and update records in any Coupa resource. The agent supplies the resource path at runtime, so one set of tools covers the entire Coupa object model, from suppliers and purchase orders to invoices and users.

For setup instructions, see SnapLogic MCP Server quickstart.

Example Prompts

  • Create a new supplier called Acme Corp with status active
  • Add supplier SUP-042 to Coupa, payment method invoice
  • Raise a requisition for two standing desks
  • Set up a new user record in Coupa for Maria in Procurement
  • List the active suppliers in Coupa
  • Show me the first 20 purchase orders
  • Find requisitions with status pending approval
  • Look up the supplier record with supplier-number SUP-001
  • Pull the invoices for supplier 12345
  • Set supplier 12345 to inactive

Tools

Tool Name Functions
CoupaCreateRecord Create a record in any Coupa resource from a field payload.
CoupaCreateRecordChild Coupa Create Record Child
CoupaQuery Read records from any Coupa resource with up to three query filters.
CoupaUpdateRecord Update an existing Coupa record with a partial field payload.
CoupaUpdateRecordChild Coupa Update Record Child

Set up the MCP Server tools

  1. Download coupa_tools.zip.
  2. In SnapLogic Designer, open the target project space (or create one), then choose Import Project / Import Pipelines and select the downloaded coupa_tools.zip. Designer unpacks each pipeline into the project.
  3. Attach the required account to the connectivity snaps (see Connection Setup).
  4. Expose the project as an MCP server — each pipeline becomes a tool named after its label. New to this? Start with the MCP quickstart, then use the MCP Server Pipeline Builder to generate the server from the imported pipelines.

Configure account

Attach a Coupa account to the Coupa snaps in Designer after import.

These pipelines ship without credentials by design — attach a valid account in Designer before the tools will execute.

See the SnapLogic account documentation for this connector: Configuring Coupa Accounts.

Important: These pipelines ship without credentials by design — attach a valid account in Designer before the tools will execute. Credentials live in the SnapLogic account store, never in the pipeline JSON.

CoupaCreateRecord

Creates a new record in any Coupa resource collection by supplying the resource path and field payload, returning the created record. Use it to add suppliers, raise requisitions, or insert any other Coupa object the user describes.

Parameter Type Default Description
api_path* string

Coupa API resource path the record is created in, e.g. suppliers.

payload* object

Field map of the record to create, e.g. {name, status, supplier_number, payment_method}.

* Required parameter.

Try asking:

  • Create a new supplier called Acme Corp with status active
  • Add supplier SUP-042 to Coupa, payment method invoice
  • Raise a requisition for two standing desks
  • Set up a new user record in Coupa for Maria in Procurement

CoupaCreateRecordChild

Lets the LLM coupa create record child, exposed as an MCP tool callable via Pipeline Execute.

Parameter Type Default Description
api_path string

CoupaQuery

Reads records from any Coupa resource collection, with up to three query filters to narrow results. Use it whenever the user asks to look something up in Coupa, such as suppliers, purchase orders, or invoices.

Parameter Type Default Description
api_path* string

Coupa API resource path to read, e.g. suppliers, requisitions, purchase_orders.

filter_1_key string

Name of the first query parameter to send, e.g. status or limit.

filter_1_value string

Value for the first query parameter.

filter_2_key string

Name of the second query parameter.

filter_2_value string

Value for the second query parameter.

filter_3_key string

Name of the third query parameter.

filter_3_value string

Value for the third query parameter.

* Required parameter.

Try asking:

  • List the active suppliers in Coupa
  • Show me the first 20 purchase orders
  • Find requisitions with status pending approval
  • Look up the supplier record with supplier-number SUP-001
  • Pull the invoices for supplier 12345

CoupaUpdateRecord

Updates an existing Coupa record by specifying the resource path with id and a partial field payload, returning the updated record. Use it to correct details, change a status, or edit any record the user identifies.

Parameter Type Default Description
api_path* string

Coupa API path of the record to update, including its id, e.g. suppliers/12345.

payload* object

Field map of values to change, e.g. {name, status}. Only the supplied fields are modified.

* Required parameter.

Try asking:

  • Set supplier 12345 to inactive
  • Rename supplier 12345 to 'Acme Corp Updated'
  • Change the payment method on supplier SUP-001 to bank transfer
  • Update requisition 908 with a new justification note

CoupaUpdateRecordChild

Lets the LLM coupa update record child, exposed as an MCP tool callable via Pipeline Execute.

Parameter Type Default Description
api_path string