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 and email assistant. One sign-in connects it; there is nothing to install.
What you need
- An approved ProcDuck account that belongs to an organization.
- A plan with API access (Pro or Enterprise). On a plan without it the connection is refused with a
402on its first request. - The server URL:
https://procduck.com/api/mcp
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.
- 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 and pass it as a header:
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, fill the NUPCO response and attachments files.
- 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.
Managing and revoking access
Each connection appears under Settings → Integrations as an API key named after the app that connected (for example *Claude · MCP*), owned by you. Deactivate it to pause the connection, or revoke it to end it; Claude will ask you to sign in again the next time it needs the server. Connecting the same app again replaces its previous key.
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(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 plan has no API calls, or today's allowance is used up.
- `403 insufficient_role`: your role does not allow that action; the connection can never exceed it.
- Claude still shows the connection after you revoked the key: Claude keeps its own record until the next request fails; then it offers to sign in again.