Dome Systems

Parallel Search MCP and Dome

Agents describe what they want in plain language. Read it first.

Parallel's Search MCP takes a natural-language objective and keyword queries, and fetches pages by URL. An objective often says more about your plans than any keyword. Behind Dome, a rule reads each objective before it leaves and a guard reads each keyword query.

AnalystsAgentsDomeParallelCallersAnalystsAgentssourcing-agentAgentssupport-researcherAgentsdeal-scoutGatewaysresearch-gatewayweb_searchObjectives checkedweb_fetchArguments scannedModel poolAny providerRulesGuardsAuditsaudit-trail
sourcing-agent→parallel/web_search· scheduledAllowed

How Dome helps

Dome provides a governed gateway for Parallel

Objectives read before they leave

An objective is a sentence about what the agent wants. A rule refuses one that names an internal project, searching or fetching.

Keyword lists guarded

Keyword queries arrive as a list. The guard reads every item, and a customer's email in one blocks the whole call.

Two tools, one key

Parallel's server has web_search and web_fetch. Dome holds the key for both, and each agent signs in to the Gateway with its own.

Get started

Parallel behind the Gateway in four steps

Add the Search MCP server, sync both tools, guard the keyword lists, then deploy the objective rule.

  1. 01

    Add the Parallel Search MCP server

    Dome stores the Parallel API key and sends it as a Bearer token on every call.

    $ dome tools add --name parallel \
    --url https://search.parallel.ai/mcp \
    --auth-method api-key \
    --credential-type shared \
    --authorization "Bearer $PARALLEL_API_KEY" \
    --gateway prod-gateway
  2. 02

    Sync the catalog

    Sync needs a valid key, and Parallel refuses an invalid one. Without a sync, the Gateway has no Parallel tools to offer.

    $ dome tools catalog sync parallel
  3. 03

    Block personal data in arguments

    A JSON filter on the request direction scans every argument. A match blocks the call before it reaches Parallel.

    $ cat > query-leak.json <<'EOF'
    $ {"json":{"components":[{"fieldActions":[{
    "matcher":{"contentMatchers":[{"ssn":{}},{"creditCard":{"requireLuhn":true}},{"email":{}}]},
    "action":"FILTER_ACTION_BLOCK"}]}]}}
    $ EOF
    $ dome guards filters create query-leak --config-from query-leak.json
    $ dome tools guards filters set parallel --direction request --filters query-leak
  4. 04

    Apply the rules

    The rule is scoped to deal-scout. Simulate an objective that names the codename, then deploy.

    $ dome rules apply parallel-objectives.cedar --agent deal-scout --name parallel-objectives

Commands and rules tested against a Dome workspace on October 1, 2026. For anything about Parallel itself, see Parallel Web Systems's documentation.

Rules

Search and fetch, never the codename

The permit opens both Parallel tools. The forbid refuses any call whose objective names Project Halcyon. Keyword queries arrive as a list, so the guard covers those.

permit (principal, action == Dome::Action::"mcp:call", resource is Dome::MCPTool)
when {
resource.connection_name == "parallel" &&
["web_search", "web_fetch"].contains(resource.tool_name)
};
 
forbid (principal, action == Dome::Action::"mcp:call", resource is Dome::MCPTool)
when {
resource.connection_name == "parallel" &&
resource has arguments &&
resource.arguments has objective &&
resource.arguments.objective like "*Halcyon*"
};

Try it

One call, two outcomes

Switch the caller or the argument and watch the same call decide differently. Every decision lands in audit.

Objective

agent deal-scout · acting as m.chen
parallel/web_search(objective: "Find industrial sensor startups that raised a Series B in 2026", search_queries: ["industrial sensor startup Series B"])
  1. Agentdeal-scout is registered and active
  2. Callerm.chen verified through Okta
  3. RuleThe objective names no internal project
DecisionAllowed

Example agents

Three agents on Parallel

Each one tells Parallel what it's looking for. None of them tells it what the company is planning.

sourcing-agent

Find new suppliers

Searches for suppliers that meet a spec and reads their product pages for procurement.

  • parallel/web_search
  • parallel/web_fetch

support-researcher

Research a support case

Searches vendor docs and forums for a known error. A customer's email in a query blocks the call.

  • parallel/web_search
  • parallel/web_fetch

deal-scout

Scout acquisition targets

Describes the kind of company a deal needs in plain language. An objective that names the deal itself is refused.

  • parallel/web_search

Agent workflow

Bringing it together

Connecting Parallel to registered agents, models, and identity in Dome completes a governed agent application.

Dome

Control point

Gateway

  • Rules
  • Guards
  • Quotas

Every call decided and audited

Tools

Agent service

Parallel

This page

FAQ

Common questions

Does Parallel have an MCP server?

Yes. Parallel hosts a Search MCP server at search.parallel.ai/mcp with two tools, web_search and web_fetch.

Can Dome read a natural-language objective?

Yes. The objective is an argument like any other. Rules match it with like patterns, and a match refuses the call before Parallel sees it.

Does the guard cover keyword lists?

Yes. The JSON filter reads every element of the queries list. One Social Security number, card number or email address in any of them blocks the call.

Next steps

Talk with our FDE team

Our forward deployed engineers work with your platform team to get your agents into production and under control: the first one governed on your own systems, and a pattern your teams can repeat for every agent after it.