> For the complete documentation index, see [llms.txt](https://docs.durohub.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.durohub.com/ai-integration/mcp.md).

# Duro MCP Server

Ask questions about your parts instead of writing queries for them.

The Duro MCP server connects an AI assistant — Claude, or any client that speaks the [Model Context Protocol](https://modelcontextprotocol.io) — directly to a Duro library. It can search your components, read BOMs, create parts, upload files, and open change orders, using the same permissions you already have.

Nothing to clone, nothing to build, and no API key to paste anywhere.

## Connect

```bash
claude mcp add --transport http duro https://mcp.durohub.com/mcp
```

Then authenticate. In Claude Code, run `/mcp`, choose **duro**, and select **Authenticate**. Your browser opens, you sign in to Duro the way you always do, and you pick which organization and library to connect.

That's it. Ask it something:

> Using duro, what library am I connected to?

## Your Duro address

The command above points at Duro's US host. If your team signs in somewhere else — a regional deployment or a dedicated instance — the MCP URL follows your address the same way your API URL does.

| You sign in at       | Your API is              | Your MCP URL is                      |
| -------------------- | ------------------------ | ------------------------------------ |
| `durohub.com`        | `api.durohub.com`        | `https://mcp.durohub.com/mcp`        |
| `<name>.durohub.com` | `<name>-api.durohub.com` | `https://<name>-mcp.durohub.com/mcp` |

So a team signing in at `acme.durohub.com` connects to `https://acme-mcp.durohub.com/mcp`.

{% hint style="info" %}
Keep the connection named `duro` whichever host you use. The name is what you say when you talk to it — "using duro, find…" — and it reads the same everywhere. Only the URL changes.

Not sure which host is yours? It's the address in your browser when you're signed in to Duro. Your workspace admin can confirm it.
{% endhint %}

## What you can ask

The assistant picks the right tools on its own. You describe what you want.

**Find things**

> Using duro, find resistors in production that changed in the last month.

> Which assemblies is CPN 423-02054-00 used on?

Search understands plain language — statuses, categories, people, dates, labels, and custom attributes. It also tells you how it read your question, so you can see what it actually searched for before you trust the answer.

**Understand a BOM**

> Show me the full bill of materials for 451-00448-00, three levels deep.

**Create and update**

> Create a new capacitor called "10uF 25V X7R 0805", then attach this datasheet to it.

> Move every part on CO-42 to Production.

**Open a change order**

> Start a change order for the three parts we just updated and put it on the Single Stage Review workflow.

See the [Tool Reference](/ai-integration/tools.md) for everything it can do.

## What it can and cannot do

This is the same summary the consent screen shows you before you approve the connection, so nothing below should be a surprise when you get there.

**Once connected it will be able to:**

* Search and read components, assemblies, and BOMs
* Create and update components
* Upload files and attach documents
* Open and submit change orders

**It will not be able to:**

* Reach any of your other libraries
* Change categories, statuses, or library settings
* Manage users, permissions, or API keys

It acts as **you** — limited to what your role allows, and everything it creates or edits is attributed to you in the change history. The credential expires after 90 days, and you can revoke it at any time in Library Settings.

[What the AI Can See](/ai-integration/security.md) covers all of this in full — worth reading before you connect a production library, and worth sending to whoever asks you about it.

## Other clients

**Claude Desktop** — Settings → Connectors → Add custom connector, and paste your MCP URL.

**claude.ai** — Settings → Connectors → Add custom connector, same URL. Once connected it's available in any conversation.

**Anything else that speaks MCP** — the server implements Streamable HTTP transport with OAuth 2.1. Point your client at the same URL and it will discover the rest.

## When something goes wrong

**It says it isn't connected.** Run `/mcp` and check the status. Credentials expire after 90 days; re-authenticating takes a few seconds.

**It can't find a part you know exists.** It's almost certainly connected to a different library than you're thinking of. Ask it: *"which library am I connected to?"* To switch, remove and re-add the connection, then pick the library you want.

**It found more than you asked for.** If a name in your question doesn't exist in the library — a colleague who isn't a member, a status spelled differently — search tells you so, and tells you what it searched for instead. Check that before acting on the results.

## Next steps

* [Tool Reference](/ai-integration/tools.md) — every tool, and what each one does
* [What the AI Can See](/ai-integration/security.md) — scoping, permissions, and revoking access
* [Searching and Filtering](/advanced-topics/searching-and-filtering.md) — the query API behind the search tools, if you want to call it directly


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.durohub.com/ai-integration/mcp.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
