Skip to content

feat(integrations): add free Parallel Search MCP - #528

Open
georgeatparallel wants to merge 1 commit into
OpenHands:mainfrom
georgeatparallel:george/parallel-search-catalog
Open

georgeatparallel wants to merge 1 commit into
OpenHands:mainfrom
georgeatparallel:george/parallel-search-catalog

Conversation

@georgeatparallel

@georgeatparallel georgeatparallel commented Sep 1, 2026 •

Copy link
Copy Markdown

HUMAN:
I work at Parallel. I’d like OpenHands users to be able to add Parallel Search from the integration catalog without manually configuring the MCP URL. I asked an agent to update this PR against main and regenerate the catalog.

AGENT:

Why

This adds free, keyless web search and page fetching to the shared integration catalog. OpenHands users can add Parallel Search through the normal MCP settings instead of entering its URL manually. I'm George from Parallel.

For context, Parallel Search Fast scores 80 F1 on Artificial Analysis's DeepSearchQA benchmark, and its Time per Task chart reports 18.5 seconds per task. Fast is also the mode used by anonymous Search MCP. These are search API benchmark results, not measured OpenHands performance.

Summary

  • Add an opt-in, no-auth Streamable HTTP entry for Parallel Search MCP and regenerate the JavaScript index.
  • Update the public-server allowlist and add an opt-in live test for search, page fetching, source links and invalid arguments.
  • Preserve existing integrations, search defaults and saved settings.

Issue Number

Fixes #604

How to Test

uv sync --group test
npm run build:integrations
uv run pytest -q
RUN_PARALLEL_MCP_LIVE=1 uv run pytest -q tests/test_live_integration_smoke.py -k parallel

Validation after merging upstream main and regenerating the integration index on September 21, 2026: Python 3.12.13 with openhands-sdk 1.49.2 passed 985 tests, with 25 skipped. The anonymous live Parallel test passed search, page fetching, source-bearing results and invalid arguments. Extension sync and deprecation checks also passed; extension sync reported an existing non-blocking marketplace coverage warning for plugins/issue-duplicate-checker.

Earlier validation with this package linked into Agent Canvas passed 52 focused component/helper tests, including credential-free installation and preservation of sibling servers. Those consumer tests were not rerun for this merge, and the full hosted UI was not exercised.

With this catalog version installed in Agent Canvas, open MCP settings, choose Parallel Search from the marketplace and add its no-auth connection. It uses https://search.parallel.ai/mcp and requires no API key. The enabled server exposes web_search and web_fetch through the existing MCP tool path.

Video/Screenshots

No hosted UI recording was captured for this catalog and test change.

Notes

Search queries and fetched URLs are sent to Parallel's hosted service. Anonymous Search MCP is free for light use and rate-limited; model and hosting costs still apply. Availability in released clients follows the catalog release and consumer update.

@github-actions github-actions Bot added the type: feat A new feature label Sep 1, 2026
@georgeatparallel
georgeatparallel marked this pull request as ready for review September 1, 2026 01:08
@all-hands-bot

Copy link
Copy Markdown
Contributor

👋 This PR needs a couple of things fixed before OpenHands can review it:

  • the PR description's HUMAN: section needs at least 20 characters describing what you tested, not just the template placeholder

Push an update once this is addressed and this check re-runs automatically.

This is an automated check - no AI was used to generate this comment.

@all-hands-bot

Copy link
Copy Markdown
Contributor

🚦 CI is currently failing on this PR's latest commit.

Please fix the failing checks before OpenHands reviews it - this is re-checked automatically once you push a new commit. (A maintainer can also request @all-hands-bot as a reviewer to have it reviewed regardless of CI status.)

This is an automated check - no AI was used to generate this comment.

@georgeatparallel

Copy link
Copy Markdown
Author

I've merged current main and regenerated the integration index in 38fe194. Local validation on Python 3.12 passed 985 tests (25 skipped), and the anonymous Parallel search/fetch smoke test passed. The PR description now records the fresh results and Rowan's earlier local test report without claiming hosted UI testing.

Could a maintainer add enhancement to #604? The readiness bot says that missing type label is the blocker; its existing Desired Behavior and Acceptance Criteria sections meet the enhancement criteria.

The fresh Tests, Check Extensions, and Deprecation deadlines runs also require approval for this fork. Could you approve those workflows? Once the readiness gate and CI pass, I'd appreciate a review of this catalog addition.

@enyst enyst left a comment •

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm an AI agent (Claude Code, based on Opus 5.5) helping Engel Nyst (@enyst) with project work.

The entry looks correct, and keyless Parallel Search seems like a reasonable addition alongside Tavily, Exa and Brave. Only process items block it right now.

  1. Conflict in the generated index. integrations/catalog-index.js conflicts with main because Granola (#655) landed after your Sep 21 merge. Please merge main again and re-run npm run build:integrations instead of resolving the conflict by hand. Main's generator, run on main plus this JSON, produces a clean 80-entry index.
  2. Gates. The other blockers are the ones you already raised on Sep 21, and they are on maintainers: #604 still needs triage to ready-for-dev, and the fork workflows still need approval.

Non-blocking: the no-auth allowlist in tests/test_catalogs.py exists so that each public endpoint is added deliberately. Adding parallel-search there looks reasonable to me. The endpoint is on Parallel's own domain, and the PR says that queries and fetched URLs go to Parallel.

Checked:

  • integrations/catalog/parallel-search.json validates against main's integrations/catalog.schema.json.
  • catalog-index.js at 38fe194 matches main's generator output for this head's catalog directory.
  • docsUrl returns 200. https://search.parallel.ai/mcp answers a credential-less HEAD with MCP headers (405, mcp-session-id). I did not call any MCP tools or run the live smoke test.
  • MCPToolObservation.from_call_tool_result exists in the SDK's openhands/sdk/mcp/definition.py, and the new live test is opt-in and skipped by default.

Adds the keyless Parallel Search MCP catalog entry, allowlists it as an intentional no-auth remote MCP, adds an opt-in live smoke test, and regenerates catalog-index.js with npm run build:integrations on current main.
@cursor
cursor Bot force-pushed the george/parallel-search-catalog branch from 5c77dd9 to b84b8a5 Compare October 8, 2026 22:24
@georgeatparallel

Copy link
Copy Markdown
Author

Thanks @enyst! Rebased onto current main as a single commit and regenerated integrations/catalog-index.js with npm run build:integrations instead of resolving it by hand, so it now has 80 entries including Granola. parallel-search is in the no-auth allowlist in tests/test_catalogs.py, and the full suite passes locally (1295 passed, 24 skipped).

The remaining gates are the #604 triage and the fork workflow approval.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type: feat A new feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add Parallel Search MCP to the integration catalog

3 participants