---
canonical_url: "https://docs.composio.dev/toolkits/marcopolo_mcp"
markdown_url: "https://docs.composio.dev/toolkits/marcopolo_mcp.md"
product: "platform"
version: null
last_updated: null
---

# MarcoPolo MCP

MarcoPolo MCP lets agents securely query, correlate, analyze, and act on authorized data across databases, warehouses, cloud storage, and SaaS applications.

- **Category:** model context protocol
- **Auth:** DCR_OAUTH
- **Composio-managed OAuth available?** No
- **Tools:** 5
- **Triggers:** 0
- **Slug:** `MARCOPOLO_MCP`
- **Version:** 20260910_00

## Tools

### Connection setup

**Slug:** `MARCOPOLO_MCP_CONNECTION_SETUP`

Create a browser setup URL for a credentialed connection.

Use a canonical `type` when known; otherwise pass `intent_text`.
For hosted demo data with no credentials, use `install_demo_connection`.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `type` | string | Yes |  |
| `context` | string | Yes | Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): "Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization." |
| `intent_text` | string | No |  |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `url` | string | No |  |
| `hint` | string | No |  |
| `type` | string | No |  |
| `error` | string | No |  |
| `company` | string | No |  |
| `details` | string | No |  |
| `message` | string | No |  |
| `success` | boolean | Yes |  |
| `warnings` | array | No |  |
| `instructions` | array | No |  |
| `next_actions` | array | No |  |
| `workflow_type` | string | No |  |
| `resolution_mode` | string | No |  |
| `suggested_types` | array | No |  |
| `catalog_resource` | string | No |  |
| `resolution_reason` | string | No |  |
| `configuration_schema` | object | No |  |

### Connections list

**Slug:** `MARCOPOLO_MCP_CONNECTIONS_LIST`

List visible Marcopolo connections ready in the execution workspace.

Returned names are valid `connection_name` values for `data_query`.
Capabilities and workspace paths describe supported workspace commands.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `context` | string | Yes | Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): "Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization." |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `count` | integer | No |  |
| `error` | string | No |  |
| `message` | string | No |  |
| `success` | boolean | Yes |  |
| `customer` | string | No |  |
| `operation` | string | No |  |
| `connections` | array | No |  |
| `next_actions` | array | No |  |

### Data query

**Slug:** `MARCOPOLO_MCP_DATA_QUERY`

Run a bounded governed query against a visible connection.

Use this tool in generated code that re-queries live data at view or
load time: Remote Artifacts, external web apps, scheduled scripts, and
any other programmatic interface that fetches fresh data on each run.
Do NOT use it for agent-side analytics or one-off snapshot
visualizations — use the `workspace_shell` tool with the connection
query CLI instead.

Pass the full workspace-relative `query_file` path including the
connection prefix, e.g. `connections/<name>/queries/<file>`. Paths
resolve from `/workspace`, not from any current directory. Author new
query files through `workspace_shell` before calling this tool so query
text is durable and reusable.

Returns `rows` as a parsed list of record dicts and `row_count` as the
total — no JSON parsing needed. Results are capped by `max_rows`
(1–5000).

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `params` | string | No |  |
| `context` | string | Yes | Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): "Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization." |
| `max_rows` | integer | No |  |
| `query_file` | string | Yes |  |
| `connection_name` | string | Yes |  |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `rows` | array | No |  |
| `error` | string | No |  |
| `run_id` | string | No |  |
| `details` | string | No |  |
| `message` | string | No |  |
| `success` | boolean | Yes |  |
| `max_rows` | integer | No |  |
| `row_count` | integer | No |  |
| `query_file` | string | No |  |
| `next_actions` | array | No |  |
| `relation_name` | string | No |  |
| `schema_version` | integer | No |  |
| `connection_name` | string | No |  |

### Install demo connection

**Slug:** `MARCOPOLO_MCP_INSTALL_DEMO_CONNECTION`

Install hosted demo data with no user credentials.

Pass a demo id or natural-language request. Use `connection_setup` for
real user-owned connections.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `context` | string | Yes | Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): "Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization." |
| `intent_text` | string | No |  |
| `display_name` | string | No |  |
| `demo_connection` | string | Yes |  |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `type` | string | No |  |
| `error` | string | No |  |
| `company` | string | No |  |
| `details` | string | No |  |
| `message` | string | No |  |
| `success` | boolean | Yes |  |
| `display_name` | string | No |  |
| `next_actions` | array | No |  |
| `connection_name` | string | No |  |
| `resolution_mode` | string | No |  |
| `resolution_reason` | string | No |  |
| `demo_connection_id` | string | No |  |
| `available_demo_connections` | array | No |  |
| `resolved_demo_connection_id` | string | No |  |

### Workspace shell

**Slug:** `MARCOPOLO_MCP_WORKSPACE_SHELL`

Run a shell command in the persistent /workspace runtime.

Use for all agent-side work: query authoring, analytics, DuckDB joins,
workspace files, scripts, git, diagnostics, and cron. The `connection`
and `cron` CLIs exist only inside this runtime and must be invoked
through this tool.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `command` | string | Yes |  |
| `context` | string | Yes | Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): "Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization." |
| `timeout` | integer | No |  |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `error` | string | No |  |
| `stderr` | string | No |  |
| `stdout` | string | No |  |
| `details` | string | No |  |
| `message` | string | No |  |
| `success` | boolean | Yes |  |
| `exit_code` | string | No |  |
| `next_actions` | array | No |  |
| `execution_time` | number | No |  |
