Browse the documentation

MCP tools

MCP tool reference

Every tool the ProcDuck MCP server gives Claude and other MCP clients: what it does, its parameters, what it returns and who may use it.

The ProcDuck MCP server offers 242 tools, covering nearly everything you do in the app: searching tenders, pricing items, quotations, supplier RFQs, sales and purchase orders, invoices and the team. This reference explains each tool: what it does, its parameters, what it returns and who may use it.

Note:This is the reference for the organization tools you reach from Claude or any MCP client. To connect, see Connect Claude; for ready-made requests, see Working with Claude. The server address is https://procduck.com/api/mcp. To get started, a lite server offers only the catalog and tender participation tools.

How the tools work

Each tool matches an action you take in the app: search tenders, price an item, create a quotation, record a supplier quote. A tool's name starts with the area and ends with the action, like tenders_list, quotations_create or rfq_responses_add. You rarely type a tool name yourself: you ask Claude for what you want in your own words, and it picks the right tool and calls it as you. If you are building your own MCP client, these names and parameters are what you send.

Every call runs as the member who connected, inside their organization, and goes through the same REST API (v1) the app and your own scripts use, so no tool goes around your permissions. The REST endpoints behind the tools are in the API reference.

Who may use a tool

A call needs three things at once, and the line under each tool's description names them:

  • The scope: a permission written on the API key or connection, such as tenders.read or quotations.write. Reading and writing are separate scopes, and * grants everything. A connection made by signing in from Claude carries *, bounded by your role.
  • The role: your current role in the organization. It is read on every call, so a change to your role changes the connection at once. Some roles use a tool without seeing prices, and the notes under the tool say so.
  • The plan: every tool needs the Pro or Enterprise plan. Starter includes no API or MCP access, and every request from it answers 403 plan_upgrade_required with the feature api_access. On Pro each user may hold one API key or MCP connection, and a second is refused with 403 plan_limit_reached and api_keys_per_user. Enterprise has no limit.

A refusal says why: a 403 whose text names the missing scope, or starts with insufficient_role, plan_upgrade_required or plan_limit_reached. The detail of each role is in the API reference.

Reading an entry

  • The line under the description: first what the tool does to your data (read-only, changes data, or deletes or overwrites data), then the scope, the roles and the plans.
  • The parameters table: each parameter's name, type, whether it is required, and what it means. Nested fields are written with a dot, so items[].quantity is the quantity field of each element of the items list. The types are string, integer, number, boolean and object, and [] after a type means a list of it.
  • Example arguments: what a client actually sends, for those building their own.
  • What it returns, and notes on the rules and limits worth knowing before you call.

Conventions

  • Listings take page (from 1) and page_size, and each tool's description gives its maximum. An empty result means the search found nothing.
  • Updates are partial: an update tool changes only what you send, and whatever you leave out stays as it is. null clears a field that can be empty. A list (such as a manual tender's items) is replaced only when you send it, and a tool's description says when it replaces the whole list.
  • IDs are numbers (a tender ID, an item ID, a quotation ID and so on) and come from the list and detail tools. Amounts are in SAR unless the description says otherwise.
  • Dates: last_offer_date is a tender's submission deadline and submission_date is when it was published. A date is YYYY-MM-DD and a timestamp is ISO 8601.
  • Uploads travel as base64 inside the JSON, in content_base64, or as a reference to a file the platform already holds (staged_ref) where the tool says so. The server refuses a request larger than about 4.5 MB.
  • Limits: 100 requests a minute per key, and every call counts against your organization's daily allowance: 1,000 on Pro, unlimited on Enterprise.

Files and background jobs

A tool that generates a file (a PDF, an Excel workbook, a ZIP or XML) returns filename, content_type, size_bytes and the content as base64 in base64. A file over 4 MB is not embedded in the reply: the tool answers with an error that names the REST endpoint to download it from with your key. When the assistant on WhatsApp is the caller, files are sent into the conversation as documents after the reply.

Two files take more than one request to build: the NUPCO attachments file and the quotations file bundle. They are built in the background; the tool that starts one waits up to wait_seconds and then returns the file or the job, and the tools in Bid files and background jobs follow it.

Uploading a file to a record, such as a product photo or attachment or the organization's logo, does not go through the tool: the start tool returns a temporary upload link you send the file to with a PUT, and the finalize tool checks the file and files it. The details are in Photos, attachments and spreadsheet imports.

The pages of this reference

PageToolsCovers
Tenders and search16MCP tools for searching and reading tenders, their summaries and price history, plus favorites, saved searches and export.
Manual tenders, items and participation17MCP tools for creating manual tenders and managing their items, marking the items you bid on and choosing the product for each.
Bids and bid pricing8MCP tools for the bid pipeline, the prices you set per tender item and their award outcomes.
Bid files and background jobs7MCP tools for generating the files you submit with a bid (the response workbook, the attachments file and the cover letter) and following the background jobs behind the large ones.
Products24MCP tools for the product catalog: records, trash, manufacturer and NUPCO links, price history and tender alerts.
Manufacturers10MCP tools for the manufacturer directory, its price intelligence and authorization letters.
Photos, attachments and spreadsheet imports26MCP tools for product photos and attachments, manufacturer attachments, your organization's logo, stamp and signature, and importing records from a spreadsheet.
Quotations and sales people21MCP tools for creating, editing, approving, generating and downloading quotations, and for the sales-person roster.
RFQs and supplier quotes13MCP tools for supplier RFQs, recording their quotes in any currency, the price book and exchange rates.
Customers7MCP tools for the customer directory, its tax details and addresses, and linking a customer to a manufacturer record.
Sales and purchase orders16MCP tools for sales orders from customers and purchase orders to suppliers, including goods receipts.
Deliveries and warehouses16MCP tools for deliveries that fulfil sales orders, warehouses and destinations.
Invoices and e-invoicing12MCP tools for ZATCA tax invoices, credit and debit notes, the activity log, the archive and the chain verification.
Dashboard, analytics and award prices9MCP tools for reading the dashboard, analytics, the bid report, usage, activity, the calendar and award prices.
Alerts, notifications, tags and billing12MCP tools for keyword alerts and the notifications they raise, tender tags and the billing summary.
Team, settings and profile15MCP tools for team members and invitations, organization settings and your profile.
WhatsApp13MCP tools for your WhatsApp link, alerts on it, the files a conversation is holding and team groups.

All tools, A to Z

ToolWhat it does
activity_listList recent activity
agencies_listList agencies
alerts_createCreate a keyword alert
alerts_deleteDelete a keyword alert
alerts_listList keyword alerts
alerts_updateUpdate a keyword alert
analytics_getGet marketplace analytics
bid_analytics_getGet bid analytics
bid_pricing_deleteDelete an item price
bid_pricing_listList item prices
bid_pricing_outcome_setRecord an item's award outcome
bid_pricing_set_batchSet many item prices
bid_report_getGet a bid preparation report
bids_createCreate a bid
bids_deleteDelete a bid
bids_listList bids
bids_updateUpdate a bid
billing_getGet the billing summary
calendar_getGet the deadline calendar
catalog_files_listSearch the document library
customers_createCreate a customer
customers_deleteDelete a customer
customers_getGet a customer
customers_link_vendorLink a customer to a supplier record
customers_listList customers
customers_unlink_vendorUnlink a customer from its supplier record
customers_updateUpdate a customer
dashboard_getGet the dashboard summary
deliveries_createCreate a delivery
deliveries_deleteDelete a delivery
deliveries_getGet a delivery
deliveries_listList deliveries
deliveries_set_statusSet a delivery's status
deliveries_updateUpdate a delivery
destinations_createCreate a destination
destinations_deleteDelete a destination
destinations_getGet a destination
destinations_listList destinations
destinations_updateUpdate a destination
export_tenders_csvExport tenders as CSV
favorites_addAdd a favorite
favorites_listList favorites
favorites_removeRemove a favorite
fx_rates_getGet exchange rates for quotes
generation_jobs_cancelCancel a generation job
generation_jobs_getGet a generation job
generation_jobs_listList generation jobs
generation_jobs_partDownload a generation job part
historical_prices_listBrowse historical award prices
invoice_archive_zipDownload the invoice XML archive
invoice_events_listList the invoice activity log
invoice_pdfDownload the invoice PDF
invoice_xmlDownload the invoice XML
invoices_createCreate an invoice draft
invoices_deleteDelete an invoice draft
invoices_getGet an invoice
invoices_issueIssue an invoice
invoices_listList invoices
invoices_submitSend an invoice to ZATCA again
invoices_updateUpdate an invoice draft
manufacturer_attachment_deleteDelete a manufacturer attachment
manufacturer_attachment_listList manufacturer attachments
manufacturer_attachment_upload_finalizeFinish a manufacturer attachment upload
manufacturer_attachment_upload_url_createStart a manufacturer attachment upload
manufacturer_intel_generateGenerate a manufacturer's AI summary
manufacturer_intel_getGet a manufacturer's price intelligence
manufacturer_letter_pdfGenerate an authorization letter
manufacturers_bulk_updateUpdate many manufacturers
manufacturers_createCreate a manufacturer
manufacturers_deleteDelete a manufacturer
manufacturers_export_csvExport the manufacturer directory
manufacturers_getGet a manufacturer
manufacturers_listList manufacturers
manufacturers_updateUpdate a manufacturer
notifications_clearClear all notifications
notifications_listList notifications
notifications_mark_readMark notifications read
product_attachment_deleteDelete a product attachment
product_attachment_upload_finalizeFinish a product attachment upload
product_attachment_upload_url_createStart a product attachment upload
product_compliance_letter_pdfGenerate a compliance letter
product_files_copyCopy a product file to other products
product_manufacturer_bulk_linkLink many products to a manufacturer
product_manufacturer_linkLink a product to a manufacturer
product_manufacturer_set_defaultSet the default manufacturer
product_manufacturer_unlinkUnlink a product from a manufacturer
product_nupco_linkLink a product to a NUPCO code
product_nupco_unlinkUnlink a product from a NUPCO code
product_photo_deleteDelete a product photo
product_photo_listList product photos
product_photo_upload_finalizeFinish a product photo upload
product_photo_upload_url_createStart a product photo upload
products_alerts_listList product alerts
products_bulk_createCreate many products
products_bulk_updateUpdate many products
products_createCreate a product
products_deleteMove a product to the trash
products_export_csvExport the whole catalog
products_getGet a product
products_historical_pricesProduct NUPCO award history
products_import_templateDownload the products import template
products_listList products
products_purgeDelete products permanently
products_restoreRestore a product from the trash
products_similarProducts with the same NUPCO code
products_sourcing_historyProduct supplier price history
products_trash_listList trashed products
products_updateUpdate a product
profile_getGet your profile
profile_updateUpdate your profile
purchase_orders_createCreate a purchase order
purchase_orders_deleteDelete a purchase order
purchase_orders_getGet a purchase order
purchase_orders_listList purchase orders
purchase_orders_receiveRecord a goods receipt
purchase_orders_set_statusSet a purchase order's status
purchase_orders_updateUpdate a purchase order
quotation_packageDownload a quotation package
quotation_packages_bundleDownload many quotation packages
quotation_pdfDownload a quotation PDF
quotation_product_documentGenerate the product document
quotation_product_document_prefillGet the product document prefill
quotations_bulk_updateUpdate many quotation headers
quotations_createCreate a quotation
quotations_defaults_getGet the quotation defaults
quotations_deleteDelete a quotation
quotations_getGet a quotation
quotations_listList quotations
quotations_set_approvalApprove or un-approve quotations
quotations_updateUpdate a quotation
rfq_excel_exportDownload the RFQ workbook
rfq_price_bookGet the vendor price book
rfq_responses_addRecord a supplier quote
rfq_responses_deleteDelete a supplier quote
rfq_responses_listList supplier quote lines
rfq_responses_updateUpdate a supplier quote
rfqs_createCreate an RFQ
rfqs_deleteDelete an RFQ
rfqs_getGet an RFQ
rfqs_listList RFQs
rfqs_updateSet an RFQ's currency
sales_order_document_deleteDelete a sales order document
sales_order_document_upload_finalizeFinish a sales order document upload
sales_order_document_upload_url_createStart a sales order document upload
sales_orders_calendarDelivery calendar
sales_orders_createCreate a sales order
sales_orders_create_deliveriesPlan a sales order's deliveries
sales_orders_deleteDelete a sales order
sales_orders_getGet a sales order
sales_orders_listList sales orders
sales_orders_mark_deliveredMark a sales order delivered in full
sales_orders_set_statusSet a sales order's status
sales_orders_updateUpdate a sales order
sales_persons_createAdd a sales person
sales_persons_deleteDelete a sales person
sales_persons_getGet a sales person
sales_persons_listList sales people
sales_persons_updateUpdate a sales person
saved_searches_createSave a search
saved_searches_deleteDelete a saved search
saved_searches_listList saved searches
settings_getGet organization settings
settings_logo_deleteDelete the organization logo
settings_logo_upload_finalizeFinish an organization logo upload
settings_logo_upload_url_createStart an organization logo upload
settings_signature_deleteDelete my signature
settings_signature_getGet my signature
settings_signature_upload_finalizeFinish a signature upload
settings_signature_upload_url_createStart a signature upload
settings_stamp_deleteDelete the organization stamp
settings_stamp_upload_finalizeFinish an organization stamp upload
settings_stamp_upload_url_createStart an organization stamp upload
settings_updateUpdate organization settings
sheet_importCreate records from a spreadsheet
tags_createCreate a tag
tags_deleteDelete a tag
tags_listList tags
tags_updateUpdate a tag
team_activity_listList team activity
team_invite_cancelCancel an invitation
team_invite_createInvite a team member
team_invite_resendResend an invitation
team_listList the team
team_removeRemove a team member
team_update_roleChange a member's role
tender_item_participation_listList participating items
tender_item_participation_set_batchSet participation for many items
tender_item_price_levels_setSet what one unit of many items is
tender_item_product_selection_clearClear an item's product selection
tender_item_product_selection_setSelect a product for an item
tender_items_createAdd an item to a manual tender
tender_items_deleteRemove an item
tender_items_updateUpdate an item
tender_quotation_pdf_bundleDownload a tender's quotation PDFs
tender_quotations_generateGenerate a tender's quotations
tender_quotations_listList a tender's quotations
tender_rfq_matrixGet a tender's supplier quotes
tenders_badail_poa_importImport NUPCO Badail POA requests
tenders_catalog_pricingPrice a tender from the catalog
tenders_cover_letter_pdfGenerate the tender cover letter
tenders_createCreate a manual tender
tenders_create_products_from_itemsCreate products from items
tenders_deleteDelete a manual tender
tenders_distributionItem distribution
tenders_getGet a tender
tenders_historical_pricesPast awards for a tender's items
tenders_listList tenders
tenders_nupco_attachments_fillGenerate the NUPCO attachments file
tenders_nupco_response_fillFill the NUPCO response file
tenders_product_links_auto_linkLink products to items automatically
tenders_product_links_listList a tender's product links
tenders_searchSearch tenders
tenders_sourcing_historyPast supplier prices for a tender's items
tenders_sourcing_price_addRecord a supplier price for an item
tenders_submission_historyYour history with a tender's items
tenders_summaryGet a tender's AI summary
tenders_updateUpdate a manual tender
usage_getGet plan usage
warehouses_createCreate a warehouse
warehouses_deleteDelete a warehouse
warehouses_getGet a warehouse
warehouses_listList warehouses
warehouses_updateUpdate a warehouse
whatsapp_alerts_getGet WhatsApp alert delivery status
whatsapp_alerts_setSet WhatsApp alert delivery
whatsapp_attachment_discardDiscard a held attachment
whatsapp_attachment_readRead a held attachment as text
whatsapp_attachments_listList held attachments
whatsapp_groups_createCreate a WhatsApp group
whatsapp_groups_deleteDelete a WhatsApp group
whatsapp_groups_listList WhatsApp groups
whatsapp_groups_remove_participantRemove a group participant
whatsapp_groups_renameRename a WhatsApp group
whatsapp_groups_reset_invite_linkReset a group's invite link
whatsapp_link_getList your linked WhatsApp numbers
whatsapp_link_revokeDisconnect a WhatsApp number
zatca_chain_verifyVerify the invoice chain and activity log
zoho_books_disconnectDisconnect Zoho Books
zoho_books_getGet the Zoho Books connection
zoho_books_organizations_listList Zoho Books organizations
zoho_books_settings_updateUpdate Zoho Books sync settings
zoho_books_syncSync Zoho Books now