Perplexity MCP Server 1.0 Migration: Test Citations, Streaming and Cancellation
Migrate to Perplexity MCP Server 1.0 with contract tests for citations, streaming events, progress, cancellation, configuration, and failures.
Migration scope: Perplexity’s documentation describes its MCP server as the supported integration path for connecting compatible clients to Perplexity research and search capabilities. The 1.0 transition should be treated as a protocol and evidence-contract change, not as a package version bump that can be accepted after one successful answer.
This checklist covers citations, streaming, progress, cancellation, configuration, errors, and repeatability. SearchEngineAnswer has not run a cross-client benchmark for this article; client behavior must be verified in the environment that will actually ship.
Freeze the current contract
Before upgrading, save the installed server version, client name and version, transport, configuration keys, enabled tools, model choice, timeouts, and permission prompts. Run a small fixture set through the old integration and retain the raw protocol transcript where security policy permits.
| Fixture | Expected evidence | Failure to catch |
|---|---|---|
| Current factual question | Sources and claim support | Answer without retrieval |
| Long research task | Ordered progress and final response | Lost or duplicated chunks |
| Cancellation | Confirmed stop state | Continued tokens or retry |
| No-result query | Explicit empty or bounded response | Invented source |
| Malformed configuration | Actionable error | Silent fallback |
Test streaming and progress
- Capture the complete ordered event stream, including initialization and terminal events.
- Verify that partial text is appended once and assembled into the same final answer shown to the user.
- Check progress messages for stable task identifiers and monotonic state.
- Disconnect the client and document whether the operation stops, resumes, or becomes unreachable.
- Run two calls concurrently and confirm events do not cross between sessions.
- Test a slow or rate-limited response and retain the error path.
A visually correct final answer can hide duplicated streaming chunks, lost citations, or a background task that continued after the interface stopped listening. Inspect protocol events, not only the rendered chat.
Test cancellation
Start a sufficiently long research call, wait until the server has produced observable progress, then issue cancellation through the supported client path. Record the cancel request, acknowledgement, final server state, elapsed time, and any output or billing activity that continues.
Repeat cancellation before retrieval, during retrieval, and during answer generation if those states are visible. Confirm the client does not automatically retry the canceled task under a new identifier. A canceled operation should not later publish a stale answer into the conversation.
Do not use production-only prompts or sensitive credentials in this test. Create bounded fixtures that exercise the same state transitions without exposing private data.
Audit citations and fallbacks
Parse every returned citation, open the target, and map it to the claim it is meant to support. Record broken targets, irrelevant passages, duplicate sources, and claims with no support. Citation formatting success is not citation accuracy.
If the integration can change models or search behavior, preserve both the requested and actual execution path. A fallback may keep the workflow available while changing latency, cost, style, or evidence coverage.
Use the citation-ready passage test for the final answer and the MCP retrieval provenance guide for separating tool output from model interpretation.
Release with rollback
- Pin the tested server and client versions.
- Publish the fixture results and known differences.
- Canary the upgrade with observable error, latency, cancellation, and citation metrics.
- Retain the prior configuration and package until the canary window ends.
- Define the rollback trigger before rollout.
A successful migration preserves the user-visible task and the evidence needed to audit it. New capabilities are useful only after the baseline contract remains intact.
Ask a question or join the discussion