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.
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.readorquotations.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_requiredwith the featureapi_access. On Pro each user may hold one API key or MCP connection, and a second is refused with403 plan_limit_reachedandapi_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[].quantityis thequantityfield of each element of theitemslist. The types arestring,integer,number,booleanandobject, 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) andpage_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.
nullclears 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_dateis a tender's submission deadline andsubmission_dateis when it was published. A date isYYYY-MM-DDand 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
| Page | Tools | Covers |
|---|---|---|
| Tenders and search | 16 | MCP tools for searching and reading tenders, their summaries and price history, plus favorites, saved searches and export. |
| Manual tenders, items and participation | 17 | MCP tools for creating manual tenders and managing their items, marking the items you bid on and choosing the product for each. |
| Bids and bid pricing | 8 | MCP tools for the bid pipeline, the prices you set per tender item and their award outcomes. |
| Bid files and background jobs | 7 | MCP 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. |
| Products | 24 | MCP tools for the product catalog: records, trash, manufacturer and NUPCO links, price history and tender alerts. |
| Manufacturers | 10 | MCP tools for the manufacturer directory, its price intelligence and authorization letters. |
| Photos, attachments and spreadsheet imports | 26 | MCP tools for product photos and attachments, manufacturer attachments, your organization's logo, stamp and signature, and importing records from a spreadsheet. |
| Quotations and sales people | 21 | MCP tools for creating, editing, approving, generating and downloading quotations, and for the sales-person roster. |
| RFQs and supplier quotes | 13 | MCP tools for supplier RFQs, recording their quotes in any currency, the price book and exchange rates. |
| Customers | 7 | MCP tools for the customer directory, its tax details and addresses, and linking a customer to a manufacturer record. |
| Sales and purchase orders | 16 | MCP tools for sales orders from customers and purchase orders to suppliers, including goods receipts. |
| Deliveries and warehouses | 16 | MCP tools for deliveries that fulfil sales orders, warehouses and destinations. |
| Invoices and e-invoicing | 12 | MCP tools for ZATCA tax invoices, credit and debit notes, the activity log, the archive and the chain verification. |
| Dashboard, analytics and award prices | 9 | MCP tools for reading the dashboard, analytics, the bid report, usage, activity, the calendar and award prices. |
| Alerts, notifications, tags and billing | 12 | MCP tools for keyword alerts and the notifications they raise, tender tags and the billing summary. |
| Team, settings and profile | 15 | MCP tools for team members and invitations, organization settings and your profile. |
| 13 | MCP tools for your WhatsApp link, alerts on it, the files a conversation is holding and team groups. |
All tools, A to Z
| Tool | What it does |
|---|---|
| activity_list | List recent activity |
| agencies_list | List agencies |
| alerts_create | Create a keyword alert |
| alerts_delete | Delete a keyword alert |
| alerts_list | List keyword alerts |
| alerts_update | Update a keyword alert |
| analytics_get | Get marketplace analytics |
| bid_analytics_get | Get bid analytics |
| bid_pricing_delete | Delete an item price |
| bid_pricing_list | List item prices |
| bid_pricing_outcome_set | Record an item's award outcome |
| bid_pricing_set_batch | Set many item prices |
| bid_report_get | Get a bid preparation report |
| bids_create | Create a bid |
| bids_delete | Delete a bid |
| bids_list | List bids |
| bids_update | Update a bid |
| billing_get | Get the billing summary |
| calendar_get | Get the deadline calendar |
| catalog_files_list | Search the document library |
| customers_create | Create a customer |
| customers_delete | Delete a customer |
| customers_get | Get a customer |
| customers_link_vendor | Link a customer to a supplier record |
| customers_list | List customers |
| customers_unlink_vendor | Unlink a customer from its supplier record |
| customers_update | Update a customer |
| dashboard_get | Get the dashboard summary |
| deliveries_create | Create a delivery |
| deliveries_delete | Delete a delivery |
| deliveries_get | Get a delivery |
| deliveries_list | List deliveries |
| deliveries_set_status | Set a delivery's status |
| deliveries_update | Update a delivery |
| destinations_create | Create a destination |
| destinations_delete | Delete a destination |
| destinations_get | Get a destination |
| destinations_list | List destinations |
| destinations_update | Update a destination |
| export_tenders_csv | Export tenders as CSV |
| favorites_add | Add a favorite |
| favorites_list | List favorites |
| favorites_remove | Remove a favorite |
| fx_rates_get | Get exchange rates for quotes |
| generation_jobs_cancel | Cancel a generation job |
| generation_jobs_get | Get a generation job |
| generation_jobs_list | List generation jobs |
| generation_jobs_part | Download a generation job part |
| historical_prices_list | Browse historical award prices |
| invoice_archive_zip | Download the invoice XML archive |
| invoice_events_list | List the invoice activity log |
| invoice_pdf | Download the invoice PDF |
| invoice_xml | Download the invoice XML |
| invoices_create | Create an invoice draft |
| invoices_delete | Delete an invoice draft |
| invoices_get | Get an invoice |
| invoices_issue | Issue an invoice |
| invoices_list | List invoices |
| invoices_submit | Send an invoice to ZATCA again |
| invoices_update | Update an invoice draft |
| manufacturer_attachment_delete | Delete a manufacturer attachment |
| manufacturer_attachment_list | List manufacturer attachments |
| manufacturer_attachment_upload_finalize | Finish a manufacturer attachment upload |
| manufacturer_attachment_upload_url_create | Start a manufacturer attachment upload |
| manufacturer_intel_generate | Generate a manufacturer's AI summary |
| manufacturer_intel_get | Get a manufacturer's price intelligence |
| manufacturer_letter_pdf | Generate an authorization letter |
| manufacturers_bulk_update | Update many manufacturers |
| manufacturers_create | Create a manufacturer |
| manufacturers_delete | Delete a manufacturer |
| manufacturers_export_csv | Export the manufacturer directory |
| manufacturers_get | Get a manufacturer |
| manufacturers_list | List manufacturers |
| manufacturers_update | Update a manufacturer |
| notifications_clear | Clear all notifications |
| notifications_list | List notifications |
| notifications_mark_read | Mark notifications read |
| product_attachment_delete | Delete a product attachment |
| product_attachment_upload_finalize | Finish a product attachment upload |
| product_attachment_upload_url_create | Start a product attachment upload |
| product_compliance_letter_pdf | Generate a compliance letter |
| product_files_copy | Copy a product file to other products |
| product_manufacturer_bulk_link | Link many products to a manufacturer |
| product_manufacturer_link | Link a product to a manufacturer |
| product_manufacturer_set_default | Set the default manufacturer |
| product_manufacturer_unlink | Unlink a product from a manufacturer |
| product_nupco_link | Link a product to a NUPCO code |
| product_nupco_unlink | Unlink a product from a NUPCO code |
| product_photo_delete | Delete a product photo |
| product_photo_list | List product photos |
| product_photo_upload_finalize | Finish a product photo upload |
| product_photo_upload_url_create | Start a product photo upload |
| products_alerts_list | List product alerts |
| products_bulk_create | Create many products |
| products_bulk_update | Update many products |
| products_create | Create a product |
| products_delete | Move a product to the trash |
| products_export_csv | Export the whole catalog |
| products_get | Get a product |
| products_historical_prices | Product NUPCO award history |
| products_import_template | Download the products import template |
| products_list | List products |
| products_purge | Delete products permanently |
| products_restore | Restore a product from the trash |
| products_similar | Products with the same NUPCO code |
| products_sourcing_history | Product supplier price history |
| products_trash_list | List trashed products |
| products_update | Update a product |
| profile_get | Get your profile |
| profile_update | Update your profile |
| purchase_orders_create | Create a purchase order |
| purchase_orders_delete | Delete a purchase order |
| purchase_orders_get | Get a purchase order |
| purchase_orders_list | List purchase orders |
| purchase_orders_receive | Record a goods receipt |
| purchase_orders_set_status | Set a purchase order's status |
| purchase_orders_update | Update a purchase order |
| quotation_package | Download a quotation package |
| quotation_packages_bundle | Download many quotation packages |
| quotation_pdf | Download a quotation PDF |
| quotation_product_document | Generate the product document |
| quotation_product_document_prefill | Get the product document prefill |
| quotations_bulk_update | Update many quotation headers |
| quotations_create | Create a quotation |
| quotations_defaults_get | Get the quotation defaults |
| quotations_delete | Delete a quotation |
| quotations_get | Get a quotation |
| quotations_list | List quotations |
| quotations_set_approval | Approve or un-approve quotations |
| quotations_update | Update a quotation |
| rfq_excel_export | Download the RFQ workbook |
| rfq_price_book | Get the vendor price book |
| rfq_responses_add | Record a supplier quote |
| rfq_responses_delete | Delete a supplier quote |
| rfq_responses_list | List supplier quote lines |
| rfq_responses_update | Update a supplier quote |
| rfqs_create | Create an RFQ |
| rfqs_delete | Delete an RFQ |
| rfqs_get | Get an RFQ |
| rfqs_list | List RFQs |
| rfqs_update | Set an RFQ's currency |
| sales_order_document_delete | Delete a sales order document |
| sales_order_document_upload_finalize | Finish a sales order document upload |
| sales_order_document_upload_url_create | Start a sales order document upload |
| sales_orders_calendar | Delivery calendar |
| sales_orders_create | Create a sales order |
| sales_orders_create_deliveries | Plan a sales order's deliveries |
| sales_orders_delete | Delete a sales order |
| sales_orders_get | Get a sales order |
| sales_orders_list | List sales orders |
| sales_orders_mark_delivered | Mark a sales order delivered in full |
| sales_orders_set_status | Set a sales order's status |
| sales_orders_update | Update a sales order |
| sales_persons_create | Add a sales person |
| sales_persons_delete | Delete a sales person |
| sales_persons_get | Get a sales person |
| sales_persons_list | List sales people |
| sales_persons_update | Update a sales person |
| saved_searches_create | Save a search |
| saved_searches_delete | Delete a saved search |
| saved_searches_list | List saved searches |
| settings_get | Get organization settings |
| settings_logo_delete | Delete the organization logo |
| settings_logo_upload_finalize | Finish an organization logo upload |
| settings_logo_upload_url_create | Start an organization logo upload |
| settings_signature_delete | Delete my signature |
| settings_signature_get | Get my signature |
| settings_signature_upload_finalize | Finish a signature upload |
| settings_signature_upload_url_create | Start a signature upload |
| settings_stamp_delete | Delete the organization stamp |
| settings_stamp_upload_finalize | Finish an organization stamp upload |
| settings_stamp_upload_url_create | Start an organization stamp upload |
| settings_update | Update organization settings |
| sheet_import | Create records from a spreadsheet |
| tags_create | Create a tag |
| tags_delete | Delete a tag |
| tags_list | List tags |
| tags_update | Update a tag |
| team_activity_list | List team activity |
| team_invite_cancel | Cancel an invitation |
| team_invite_create | Invite a team member |
| team_invite_resend | Resend an invitation |
| team_list | List the team |
| team_remove | Remove a team member |
| team_update_role | Change a member's role |
| tender_item_participation_list | List participating items |
| tender_item_participation_set_batch | Set participation for many items |
| tender_item_price_levels_set | Set what one unit of many items is |
| tender_item_product_selection_clear | Clear an item's product selection |
| tender_item_product_selection_set | Select a product for an item |
| tender_items_create | Add an item to a manual tender |
| tender_items_delete | Remove an item |
| tender_items_update | Update an item |
| tender_quotation_pdf_bundle | Download a tender's quotation PDFs |
| tender_quotations_generate | Generate a tender's quotations |
| tender_quotations_list | List a tender's quotations |
| tender_rfq_matrix | Get a tender's supplier quotes |
| tenders_badail_poa_import | Import NUPCO Badail POA requests |
| tenders_catalog_pricing | Price a tender from the catalog |
| tenders_cover_letter_pdf | Generate the tender cover letter |
| tenders_create | Create a manual tender |
| tenders_create_products_from_items | Create products from items |
| tenders_delete | Delete a manual tender |
| tenders_distribution | Item distribution |
| tenders_get | Get a tender |
| tenders_historical_prices | Past awards for a tender's items |
| tenders_list | List tenders |
| tenders_nupco_attachments_fill | Generate the NUPCO attachments file |
| tenders_nupco_response_fill | Fill the NUPCO response file |
| tenders_product_links_auto_link | Link products to items automatically |
| tenders_product_links_list | List a tender's product links |
| tenders_search | Search tenders |
| tenders_sourcing_history | Past supplier prices for a tender's items |
| tenders_sourcing_price_add | Record a supplier price for an item |
| tenders_submission_history | Your history with a tender's items |
| tenders_summary | Get a tender's AI summary |
| tenders_update | Update a manual tender |
| usage_get | Get plan usage |
| warehouses_create | Create a warehouse |
| warehouses_delete | Delete a warehouse |
| warehouses_get | Get a warehouse |
| warehouses_list | List warehouses |
| warehouses_update | Update a warehouse |
| whatsapp_alerts_get | Get WhatsApp alert delivery status |
| whatsapp_alerts_set | Set WhatsApp alert delivery |
| whatsapp_attachment_discard | Discard a held attachment |
| whatsapp_attachment_read | Read a held attachment as text |
| whatsapp_attachments_list | List held attachments |
| whatsapp_groups_create | Create a WhatsApp group |
| whatsapp_groups_delete | Delete a WhatsApp group |
| whatsapp_groups_list | List WhatsApp groups |
| whatsapp_groups_remove_participant | Remove a group participant |
| whatsapp_groups_rename | Rename a WhatsApp group |
| whatsapp_groups_reset_invite_link | Reset a group's invite link |
| whatsapp_link_get | List your linked WhatsApp numbers |
| whatsapp_link_revoke | Disconnect a WhatsApp number |
| zatca_chain_verify | Verify the invoice chain and activity log |
| zoho_books_disconnect | Disconnect Zoho Books |
| zoho_books_get | Get the Zoho Books connection |
| zoho_books_organizations_list | List Zoho Books organizations |
| zoho_books_settings_update | Update Zoho Books sync settings |
| zoho_books_sync | Sync Zoho Books now |