# Parallel — how to use (mcp.ai)

Connect your Parallel account and use 32 tools for web scraping straight from your AI agent. Connect with your own API key. Parallel offers a Task API for automated, structured web research, transforming natural language queries into precise, schema-compliant outputs.

## Option A — via MCP (recommended)
Remote MCP endpoint (HTTP, streamable): `https://api.mcp.ai/p_parallel?ms=1787293680000`
Add it as a custom/remote MCP connector in your client (Claude, Cursor, VS Code…), then authenticate when prompted. Once connected, ask the agent to use the server's tools (e.g. `parallel_add_enrichment_to_find_all_run`).

## Option B — via direct REST API
Base URL: `https://api.mcp.ai/api/parallel`
Auth: `Authorization: Bearer sk_live_…` — create a workspace API key at https://mcp.ai/settings/api-keys
Discover endpoints: `GET https://api.mcp.ai/api/parallel/_endpoints`

### Endpoints
- `POST https://api.mcp.ai/api/parallel/add/enrichment/to/find/all/run` — Tool to add an enrichment to a FindAll run. Use when you need to enrich existing FindAll run results with additional structured data fields. Enrichments define what information to extract from matched
  - body: { processor?: string, findall_id: string, mcp_servers?: object[], output_schema: object }
- `POST https://api.mcp.ai/api/parallel/add/runs/to/task/group` — Tool to initiate multiple task runs within a TaskGroup. Use when you need to execute multiple tasks in parallel within an existing task group.
  - body: { inputs: object[], taskgroup_id: string, default_task_spec?: object }
- `POST https://api.mcp.ai/api/parallel/cancel/find/all/run` — Tool to cancel an active FindAll run by findall_id. Use when you need to stop a running FindAll operation before it completes. Cannot cancel runs that have already terminated.
  - body: { findall_id: string }
- `POST https://api.mcp.ai/api/parallel/create/chat/completions` — Tool to get realtime chat completions from Parallel AI. Use when you need conversational AI responses or structured outputs via chat interface. Can be combined with Task API processors for research-gr
  - body: { n?: integer, model: string, top_p?: number, stream?: boolean, messages: object[], max_tokens?: integer, temperature?: number, response_format?: object, presence_penalty?: number, frequency_penalty?: number }
- `POST https://api.mcp.ai/api/parallel/create/monitor` — Tool to create a web monitor that periodically runs the specified query. The monitor runs once at creation and then continues according to the specified cadence (hourly, daily, weekly, or every two we
  - body: { query: string, cadence: string, webhook?: object, metadata?: object, output_schema?: object }
- `POST https://api.mcp.ai/api/parallel/create/task/group` — Tool to create a new task group. Use when batching multiple tasks for parallel execution. Task Groups enable grouping and tracking of multiple task runs within a single manageable unit.
  - body: { metadata?: object }
- `POST https://api.mcp.ai/api/parallel/create/task/run` — Tool to create and initiate a task run. Returns immediately with a run object in status 'queued'. Use when you need to execute tasks asynchronously with Parallel AI processors.
  - body: { input: string|object, webhook?: object, metadata?: object, processor: string, task_spec?: object, mcp_servers?: object[], enable_events?: boolean, parallel_beta?: string, source_policy?: object, previous_interaction_id?: string }
- `POST https://api.mcp.ai/api/parallel/delete/monitor` — Tool to delete a monitor, stopping all future executions. Use when you need to permanently remove a monitor. Deleted monitors can no longer be updated or retrieved.
  - body: { monitor_id: string }
- `POST https://api.mcp.ai/api/parallel/extend/find/all/run` — Tool to extend a FindAll run by adding additional matches to the current match limit. Use when you need to increase the number of matches for an existing FindAll run that is still active or has comple
  - body: { findall_id: string, additional_match_limit: integer }
- `POST https://api.mcp.ai/api/parallel/extract` — Tool to extract relevant content from specific web URLs. Use when you need to fetch and extract content from known URLs with optional focusing on specific objectives or search queries.
  - body: { urls: string[], excerpts?: boolean|object, objective?: string, fetch_policy?: object, full_content?: boolean|object, search_queries?: string[] }
- `POST https://api.mcp.ai/api/parallel/fetch/task/group/runs` — Tool to retrieve task runs from a Task Group as a resumable stream. Use when you need to fetch all runs within a group, optionally including their inputs and outputs. The stream can be resumed using t
  - body: { status?: string, taskgroup_id: string, include_input?: boolean, last_event_id?: string, include_output?: boolean }
- `POST https://api.mcp.ai/api/parallel/find/all` — Tool to start a FindAll run. Use when you need to discover and match entities based on natural-language objectives. Supports custom conditions, exclusion lists, and webhook callbacks.
  - body: { webhook?: object, metadata?: object, generator: string, objective: string, entity_type: string, match_limit: integer, exclude_list?: object[], match_conditions: object[] }
- `POST https://api.mcp.ai/api/parallel/get/find/all/run/result` — Tool to fetch the final (or latest available) FindAll candidates and result payload for a run. Use when you need to retrieve matched/unmatched candidates after a FindAll run has progressed or complete
  - body: { findall_id: string }
- `POST https://api.mcp.ai/api/parallel/get/find/all/run/schema` — Tool to retrieve the schema configuration of a FindAll run by findall_id. Use when you need to inspect the objective, entity type, match conditions, and other schema details for a previously created F
  - body: { findall_id: string }
- `POST https://api.mcp.ai/api/parallel/ingest/find/all/run` — Tool to transform a natural language search objective into a structured FindAll specification. Use when you need to generate a FindAll run spec from a user's natural language description. The generate
  - body: { objective: string }
- `POST https://api.mcp.ai/api/parallel/list/monitor/events` — Tool to list events for a monitor from up to the last 300 event groups. Retrieves events including errors and material changes in reverse chronological order.
  - body: { monitor_id: string, lookback_period?: string }
- `POST https://api.mcp.ai/api/parallel/list/monitors` — Tool to list active monitors for the user. Returns all monitors regardless of status with their configuration and current state. Supports cursor-based pagination using monitor_id and limit parameters.
  - body: { limit?: string, monitor_id?: string }
- `POST https://api.mcp.ai/api/parallel/retrieve/event/group` — Tool to retrieve an event group for a monitor. Use when you have a valid monitor ID and event group ID and want to view the execution history.
  - body: { monitor_id: string, event_group_id: string }
- `POST https://api.mcp.ai/api/parallel/retrieve/find/all/run/status` — Tool to retrieve status and metadata for a FindAll run by findall_id. Use when you need to poll or check the progress of a FindAll run that was previously created.
  - body: { findall_id: string }
- `POST https://api.mcp.ai/api/parallel/retrieve/monitor` — Tool to retrieve a specific monitor by ID. Returns the monitor configuration including status, cadence, query, and webhook settings.
  - body: { monitor_id: string }
- `POST https://api.mcp.ai/api/parallel/retrieve/task/group` — Tool to retrieve details of a specific task group. Use when you have a valid task group ID and want to view its details.
  - body: { taskgroup_id: string }
- `POST https://api.mcp.ai/api/parallel/retrieve/task/group/run` — Tool to retrieve run status by run_id for a task group. Use when you need to check the status of a specific task group run or poll for completion.
  - body: { run_id: string, taskgroup_id: string }
- `POST https://api.mcp.ai/api/parallel/retrieve/task/run` — Tool to retrieve run status by run_id. Use when you need to check the status or details of a specific task run. The run result is available from the /result endpoint.
  - body: { run_id: string }
- `POST https://api.mcp.ai/api/parallel/retrieve/task/run/input` — Tool to retrieve the input data of a specific task run by run_id. Use when you need to view the original input parameters that were provided to a task run.
  - body: { run_id: string }
- `POST https://api.mcp.ai/api/parallel/retrieve/task/run/result` — Tool to retrieve the result of a task run by run_id, blocking until the run completes. Use when you need to wait for and fetch the final output of a previously initiated task run. The request will blo
  - body: { run_id: string, timeout?: integer, parallel_beta?: string }
- `POST https://api.mcp.ai/api/parallel/search` — Tool to perform parallel semantic search. Use when you need to retrieve top matching documents for multiple queries in a single call.
  - body: { search_queries: string[] }
- `POST https://api.mcp.ai/api/parallel/simulate/event` — Tool to simulate sending an event for a monitor. Use when testing monitor webhooks or validating monitor configurations. Simulates sending an event of the specified type (defaults to monitor.event.det
  - body: { event_type?: string, monitor_id: string }
- `POST https://api.mcp.ai/api/parallel/stream/find/all/events` — Tool to stream events from a FindAll run. Use when you need real-time updates on candidate discovery, matching progress, and run status.
  - body: { timeout?: integer, findall_id: string, last_event_id?: string }
- `POST https://api.mcp.ai/api/parallel/stream/task/group/events` — Tool to stream events for a Task Group. Use when you want real-time updates of group status and run completions.
  - body: { timeout?: integer, taskgroup_id: string, last_event_id?: string }
- `POST https://api.mcp.ai/api/parallel/stream/task/run/events` — Tool to stream events for a Task Run. Returns progress updates and state changes for the task run. For runs without enable_events=true, event frequency is reduced.
  - body: { run_id: string }
- `POST https://api.mcp.ai/api/parallel/suggest/task` — Tool to suggest tasks based on user intent. Use when you need task specifications generated from a natural language description of what you want to accomplish.
  - body: { user_intent: string }
- `POST https://api.mcp.ai/api/parallel/update/monitor` — Tool to update a monitor's configuration. Use when you need to modify an existing monitor's cadence, query, metadata, or webhook settings. At least one field must be non-null to apply an update.
  - body: { query?: string, cadence?: string, webhook?: object, metadata?: object, monitor_id: string }

## Example prompts
- "What can I do in Parallel?"
- "Show me a summary of my Parallel account"

## More
- Page: https://mcp.ai/parallel
- Agent spec (llms.txt): https://mcp.ai/parallel/llms.txt
- Postman collection: https://mcp.ai/parallel/postman.json
