Integrations
Connect Claude
Use ProcDuck from inside Claude (claude.ai, the desktop app, Claude Code or the API) through the MCP server: one sign-in, then Claude searches, prices and drafts quotations as you.
Claude can use ProcDuck directly: search tenders, read line items and award history, price items, draft quotations and record supplier quotes (as you, inside your organization) through the same MCP server that powers the WhatsApp assistant. One sign-in connects it; there is nothing to install.
What you need
- An approved ProcDuck account that belongs to an organization.
- The Pro or Enterprise plan. Starter includes no API or MCP access, and every request from it is refused with
403 plan_upgrade_required. On Pro each user may hold one API key or MCP connection (a WhatsApp assistant link does not count), and Enterprise has no limit. Each request counts against your organization's daily allowance of API calls, shared with your colleagues and with the WhatsApp assistant: 1,000 on Pro, unlimited on Enterprise. - The server URL:
https://procduck.com/api/mcp
Getting started: the lite server
New to ProcDuck? Connect Claude to the lite server. It uses the same sign-in and your same account, and offers Claude only the tools for your first steps: adding manufacturers and products to your catalog, and taking part in tenders. Fewer tools keep Claude on task, and a lite connection can do nothing a full one cannot: every call runs as you, within your role. Use its address in the steps below in place of the full server's:
https://procduck.com/api/mcp/lite- Manufacturers: find, read, add and edit them.
- Products: find and read them, add one or many at once, edit them, and link a product to its manufacturer.
- Product files: upload a product's photos and documents (catalog, SFDA certificate and others), list its photos, and copy one file to many products instead of uploading it for each.
- Tenders: look a tender up by its number or a keyword, and read its items.
- Taking part: add the tender to your bids, choose the product for each item (or let ProcDuck choose where a NUPCO code matches one product, or create products from the items themselves), mark the items you bid on, and enter unit prices.
Everything else (quotations, RFQs, imports from a spreadsheet, deleting product files, manufacturer documents, alerts, sales and purchase orders, invoices) is on the full server at https://procduck.com/api/mcp. To move up, add a connector with the full address. On Pro each user holds one connection, so revoke the lite one under Settings → Integrations first.
Claude.ai and the Claude desktop app
Claude's web, desktop and mobile apps connect through custom connectors. The connector signs in with your ProcDuck account on a consent screen; there is no key to copy and no configuration to type. Claude's menus change from time to time, so look for the nearest match if a name differs from the one here.
- In Claude, open Settings → Connectors and choose Add custom connector.
- Name it *ProcDuck* and paste the server URL
https://procduck.com/api/mcp. Leave the advanced OAuth client fields (client ID and secret) empty. The connector registers itself. - Click Add, then Connect. A ProcDuck page opens: sign in if asked, check the organization and role it shows, and click Allow access.
- Back in Claude, enable ProcDuck in a chat from the tools menu and ask away. “which open NUPCO tenders match my catalog?”
Claude Code
Claude Code takes the same URL as a remote MCP server. Sign in through the browser the first time, or pass an API key instead.
claude mcp add --transport http procduck https://procduck.com/api/mcpThen run /mcp inside Claude Code and choose ProcDuck to authenticate; the same consent screen opens in your browser.
To skip the browser (on a server, in CI) create an API key under Settings → Integrations (Pro and Enterprise) and pass it as a header. On Pro that key is your one connection, so it cannot sit beside a Claude connection:
claude mcp add --transport http procduck https://procduck.com/api/mcp \
--header "Authorization: Bearer sk_live_YOUR_API_KEY"To share the connection with a team working in the same project, put it in the repository's .mcp.json, reading the key from an environment variable rather than writing it into the file:
{
"mcpServers": {
"procduck": {
"type": "http",
"url": "https://procduck.com/api/mcp",
"headers": { "Authorization": "Bearer ${PROCDUCK_API_KEY}" }
}
}
}The Claude API (Messages API)
Your own application can hand ProcDuck's tools to Claude through the Messages API's MCP connector: name the server with an API key as its bearer token, and add the server's toolset to the request.
{
"model": "claude-opus-5",
"max_tokens": 16000,
"mcp_servers": [
{
"type": "url",
"url": "https://procduck.com/api/mcp",
"name": "procduck",
"authorization_token": "sk_live_YOUR_API_KEY"
}
],
"tools": [{ "type": "mcp_toolset", "mcp_server_name": "procduck" }],
"messages": [
{ "role": "user", "content": "List the open NUPCO tenders about syringes" }
]
}The MCP connector is a beta feature of the Messages API: send its beta header (anthropic-beta: mcp-client-2025-11-20 at the time of writing) and check Anthropic's documentation for the current value.
Other MCP clients
Any client that speaks MCP over Streamable HTTP works the same way: point it at the URL, then either complete the sign-in (clients that support OAuth) or send an API key as Authorization: Bearer sk_live_…. The server is stateless (it answers each request in full and opens no server-to-client stream) which every current client handles. The local stdio server is still available for running the tools beside a checkout; see the API reference.
What Claude can do
Everything you do in the app, Claude can do through the connection, within your role. For example:
- Search and read tenders (by keyword, item text, tender number or agency) and get the AI summary of any of them.
- Work the pipeline: add tenders to bids, mark participating items, set unit prices, build the NUPCO attachments file and the cover letter, and fill the NUPCO response workbook where your client can hand it the portal's file.
- Manage the catalog: products, manufacturers, photos and documents; import a price list from a spreadsheet.
- Quotations and RFQs: draft a quotation and generate its PDF, send an RFQ, record a supplier's quote from a PDF or an email.
- Orders and fulfilment: incoming sales orders, outgoing purchase orders with goods receipts, and the deliveries that fulfil them.
- Team and alerts: keyword alerts, notifications, team activity.
For ready-to-use requests and habits that keep it safe, see Working with Claude; for every tool with its parameters and permissions, see the MCP tool reference. The setup steps are also walked through in Setting up Claude with ProcDuck. To fill your catalog with Claude's help, use the Claude skills for your catalog.
Managing and revoking access
Each connection appears under Settings → Integrations (Pro and Enterprise, for owners and admins) as an API key named after the app that connected (for example *Claude · MCP*), owned by the person who connected it. Deactivate it to pause the connection, or revoke it to end it; Claude will ask to sign in again the next time it needs the server. Connecting the same app again replaces its previous key, so on Pro it does not count as a second connection.
Because the key carries your role, a role change applies to the connection immediately, and an admin removing you from the organization ends every connection you made.
Troubleshooting
- Claude says it cannot connect, or that the server does not support sign-in: check the URL is exactly
…/api/mcp, or…/api/mcp/litefor the lite server (no trailing slash, no language prefix), and that it is the same ProcDuck deployment you sign in to. - The consent page says the request is invalid or has expired: the sign-in link is single-use and short-lived; start again from Claude.
- `402 plan_limit_reached`: your organization's allowance of API calls for today is used up.
- `403 insufficient_role`: your role does not allow that action.
- `403 plan_upgrade_required`: your plan does not include that feature. On Starter every request answers this, with the feature
api_access, because the plan has no API or MCP access. - `403 plan_limit_reached` with `api_keys_per_user`: on Pro you already hold an API key or MCP connection, and the plan allows one per user. Revoke the old one under Settings → Integrations (an owner or admin can), then connect again. Keys you already had before this rule keep working.
- Claude still shows the connection after you revoked the key: it may keep showing it until the next request is refused, and then it should offer to sign in again. If it does not, remove the connector in Claude's settings and add it again.