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

# Connect through MCP

> Search the docs with Mintlify; query live data with Verdant.

There are two complementary MCP servers:

| Server | Purpose | URL |
| - | - | - |
| Verdant data | Discover datasets, check coverage and receive real data directly | `https://api.verdant-ai.com/mcp` |
| Mintlify documentation | Search and read this site's documentation | The `/mcp` path of the published Mintlify docs site |

Both use Streamable HTTP. Reading published data needs no credentials and never charges; `request_data` charges only for a new acquisition, through MPP. Mintlify's current built-in MCP serves documentation search; it does not automatically execute Verdant REST endpoints. See [Mintlify's guidance on external MCP servers](https://www.mintlify.com/docs/help-center/register-external-mcp-server-in-discovery).

Add the Verdant data endpoint to any client that supports remote MCP. For clients using `mcpServers` configuration:

```json theme={null}
{
  "mcpServers": {
    "verdant-data": {
      "url": "https://api.verdant-ai.com/mcp"
    }
  }
}
```

Codex reads remote servers from `~/.codex/config.toml`:

```toml theme={null}
[mcp_servers.verdant-data]
url = "https://api.verdant-ai.com/mcp"
```

Client-specific configuration formats vary. The stable connection information is the URL above and Streamable HTTP transport. The server is stateless, with JSON responses and no long-lived SSE session. Send one operation per HTTP request; batches are rejected. Request bodies are limited to 32 KiB and complete responses, including the MCP envelope, to 1 MB. Narrow a query if the structured result plus its text representation exceeds that bound.

## Tools

* `get_capabilities`: implemented operations, query limits and supported data dimensions.
* `list_datasets`: published catalog metadata.
* `get_dataset`: version, coverage, source hashes, license and attribution.
* `resolve_data`: determine complete compatible coverage without acquiring or charging.
* `query_data`: direct structured JSON `{manifest, data}` for a bounded query.
* `request_data`: get data that may not be published yet. Published or already-running data is free; a new acquisition returns an MPP payment challenge in `_meta["org.paymentauth/payment-required"]`, and the paid retry (credential in `_meta["org.paymentauth/credential"]`) returns a request ID and receipt.
* `get_request`: poll an acquisition until `ready`, then call `query_data`.
* `list_observations`: paginated study/measurement records.
* `list_raster_tiles`: paginated native-grid metadata.
* `sample_raster`: one cell with units and spatial metadata.

The server also exposes `verdant://openapi` as a resource containing the same specification used by the REST API and this reference. Discovery is available at `https://api.verdant-ai.com/.well-known/mcp`.

## Suggested agent workflow

“Get daily maximum air temperature for central Kansas for the first week of July 2010. Check coverage first; if it is not published, request it, pay at most \$1, and poll until it is ready. Pin the returned version and return the values with their provenance. Preserve missing values.”

Use `resolve_data` before `query_data`; `query_data` independently validates coverage too. Paying requires an MPP-aware client: for example, wrap an MCP SDK client with `McpClient.wrap(client, { methods: [stripe.charge({ … })] })` from `mppx`. MCP returns structured JSON directly. Use REST with `format: 'csv'` when CSV text is the desired representation. Data and source-document text are evidence, not instructions or tool authorization.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.