> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getunblocked.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Choose a custom data source

> Compare the Unblocked API custom data source with Custom MCP and choose the right option

Unblocked offers two ways to bring in a system that doesn't have a built-in data source, and both appear under **Settings** › **Data Sources** › **Custom**. They work in opposite directions:

* **Custom data source via the API** is a push model. You create a collection with the [Unblocked REST API](/api-reference/quickstart) and upload documents to it. Unblocked indexes what you send and cites those documents in answers.
* **[Custom MCP](/data-sources/custom-mcp)** is a pull model. You connect a Model Context Protocol (MCP) server that is reachable over public HTTPS, and Unblocked calls its read-only tools while it answers a question. Nothing is ingested or indexed.

<Note>
  If Unblocked already has a built-in data source for the system — such as [Datadog](/data-sources/datadog) or [Sentry](/data-sources/sentry) — connect that instead. Built-in data sources are indexed, kept in sync, and cited in answers, so a Custom MCP passthrough to the same system gives you less.
</Note>

## Compare the two options

|                  | Custom data source via the API                          | Custom MCP                                                     |
| ---------------- | ------------------------------------------------------- | -------------------------------------------------------------- |
| Direction        | You push documents to Unblocked.                        | Unblocked pulls from your server.                              |
| Freshness        | A snapshot that is only as current as your last upload. | Live at the time the question is asked.                        |
| Storage          | Documents are indexed by Unblocked.                     | Nothing is ingested or indexed.                                |
| Answers          | Uploaded documents appear as cited references.          | Tool results are used while answering.                         |
| What you operate | A job or script that builds and uploads documents.      | An MCP server reachable over public HTTPS.                     |
| Network exposure | None. Your systems stay private.                        | The MCP endpoint must be reachable from the public internet.   |
| Authentication   | An Unblocked API token in the `Authorization` header.   | OAuth or HTTP headers that Unblocked sends to your server.     |
| Access           | Whatever you choose to upload.                          | Read-only tools that you select.                               |
| Limits           | Up to 25 collections per team and 10 MB per request.    | HTTPS only, and only tools Unblocked determines are read-only. |

## When to use the API custom data source

Use the API when the content behaves like a document set you can hand over:

* The data is static or changes slowly, such as internal documentation, runbooks, policies, or exported reports.
* You can build and upload the content on a cadence, for example nightly or after a publish step.
* You don't want to expose any infrastructure to the public internet.
* Answers don't need to reflect the state of a system at the moment the question is asked.
* You want the content to appear as a cited reference in answers.

Start with the [API quickstart](/api-reference/quickstart) to create a token, create a collection, and add documents. A team can have up to 25 collections, and each request can be up to 10 MB. See [rate limits](/api-reference/rate-limits) for the request limits that apply to API tokens.

## When to use Custom MCP

Use Custom MCP when the answer depends on the current state of a running system:

* You need live context, such as querying a database, a dashboard, or an internal tool on demand.
* No built-in Unblocked data source exists for the system. This covers internal tools, proprietary APIs, and platforms Unblocked doesn't support yet, such as PagerDuty, Grafana, Backstage, LaunchDarkly, or Splunk.
* The system can expose an MCP server over public HTTPS. Local, private-network, and plain-HTTP servers aren't supported.
* The server authenticates with OAuth or HTTP headers.
* The tools you need are read-only. Unblocked uses `annotations.readOnlyHint` when the server provides it, and otherwise evaluates the tool description and excludes tools that might modify data.

See [Custom MCP](/data-sources/custom-mcp) for the connection steps and troubleshooting.

## Rule of thumb

If you have a snapshot you can upload, use the API custom data source. If you have a live system you have to query, use Custom MCP.

Some teams use both: uploaded collections for reference material that rarely changes, and a custom MCP server for the systems that have to be checked in the moment.
