MCP Resources let AI assistants read uploaded CSVs and workflow artifacts through the workflow:// URI scheme, and browse trait metadata through the trait:// URI scheme.
URI Format
workflow://{workflow_id}/{type}/{filename}uploads/— Files you uploaded viagenerate_upload_urlartifacts/— Outputs generated by workflow tools (JSON, CSV, or Parquet)
Example:
workflow://550e8400-e29b-41d4-a716-446655440000/uploads/customers.csvListing Resources
Use resources/list with the workflow ID as cursor to discover all files in a workflow.
{ "method": "resources/list", "params": { "cursor": "550e8400-..." } }Reading Resources
Use resources/read with a workflow:// URI.
{ "method": "resources/read", "params": { "uri": "workflow://550e8400-.../uploads/customers.csv" } }CSV Sampling
Append query parameters to sample large CSVs without loading the entire file:
workflow://.../uploads/customers.csv?offset=0&limit=10| Parameter | Default | Description |
|---|---|---|
offset | 0 | Starting row (0-indexed) |
limit | 10 | Max rows to return |
format | csv | Output format: csv, json, or jsonl |
Artifact Format Selection
Access artifacts in different formats by changing the file extension:
workflow://.../artifacts/resolved_identities.json
workflow://.../artifacts/resolved_identities.csv
workflow://.../artifacts/resolved_identities.parquetParquet URIs return a presigned download URL. CSV and JSON artifacts also support sampling query parameters.
Trait Resources
Browse trait metadata via the trait:// URI scheme. These resources replaced the former trait_list tool.
Available Resources
| URI | Description |
|---|---|
trait://person | Browse person trait metadata |
trait://business | Browse business trait metadata |
Reading Traits
Use resources/read with a trait:// URI:
{ "method": "resources/read", "params": { "uri": "trait://person" } }Returns JSON with trait metadata (trait_id, trait_hash, name, value, domain, size, prevalence) and pagination info.
Query Parameters
Append query parameters to filter and paginate:
trait://person?domain=demographic,interest&limit=20&offset=40| Parameter | Default | Max | Description |
|---|---|---|---|
domain | all | - | Comma-separated domain filter |
limit | 50 | 200 | Max traits to return |
offset | 0 | - | Number of traits to skip |
Response Format
{
"entity_type": "person",
"traits": [
{
"trait_id": "1000000001",
"trait_hash": "abc123",
"name": "golf_affinity",
"value": "high",
"domain": "affinity",
"size": 1500000,
"prevalence": 0.05
}
],
"total": 5000,
"returned": 50,
"has_more": true,
"next_offset": 50
}Available trait domains are surfaced statically on consuming tool schemas (e.g. the domains parameter on trait_search / entity_find).
Related: