POST, and each response is JSON. There is no server-initiated stream, so GET
returns 405.
Connect an agent
Add the server to an MCP client that supports HTTP servers with headers:psk_test_...) while you build and a live key (psk_live_...)
once Prescience has turned live mode on for your account; see
Broker account setup. The Connect your agent tab of
the partner portal shows the same URL and configuration.
You can also call the server directly:
Tools
A key sees and can call only the tools its partner type and scope allow.tools/list returns that set; calling another tool returns the JSON-RPC error
-32601 “This tool isn’t enabled for your partner type or API key.”
fit_check
Input, all optional:
Output:
{ "fit": "strong" | "possible" | "poor", "reasons": [...] }. The
criteria are on Fit guidelines.
quote_group
Input is the body of POST /quotes: company (name,
domain, zip; optional externalId, ratingZip, state), census, and
optionally planYearStartDate, marketPlans and basePlan. The tool finds or
creates the group, replaces its census, saves the plans you send and quotes.
Sending the same company again with changed fields prices it again.
Output when the quote is ready:
While pricing the output is
{ groupId, status: "pricing", retryAfterSeconds, estimatedReadyAt, sweep }. Call quote_group again with the same input to
poll, or call get_quote with the groupId.
get_quote
Input: { "groupId": "..." }. Returns the latest quote in the shape above. If
rates have landed and no quote exists for the current census, it creates one;
while rates are being fetched it returns the pricing status.
list_groups and get_group
list_groups takes no input and returns groups: for each, groupId,
company, externalId, status, members, pricing (the sweep step),
createdAt and latestQuote (quoteId, createdAt, status,
quotePepmCents, quoteAnnualCents, plansAvailable).
get_group takes { "groupId": "..." } and returns the same identity fields
plus domain, ratingZip, enrolled, benefitsAdmin, basePlan (the plan on
file, or null) and marketPlans (how many plans are on file).
get_plan_details
Takes no input. Returns Prescience Diamond and Prescience Value, the three pricing
modes, what every version includes, the member cost-sharing it is quoted with
(0% coinsurance, HSA-eligible), the employer contribution range, and the
disclaimers.
submit_elections
Input: { "groupId": "...", "elections": [...] }, with elections shaped as in
Partner-run enrollment. Output is that endpoint’s
response.
Results and errors
Every tool result carries the data as MCPstructuredContent and as a JSON text
block, for clients that read only content. A quote adds its markdown table as
a second text block. Every number comes from the stored quote record.
A tool that fails returns a result with isError: true and { "error", "message", "details"? }, using the same codes as the REST API:
invalid_request (with details naming each field), not_found,
conflict, rate_limited (with retryAfterSeconds) and market_unavailable.
Protocol failures are JSON-RPC errors: -32700 (the body is not JSON, HTTP
400), -32600 (not a JSON-RPC message), -32601 (unknown method or tool) and
-32602 (missing parameters). Batches are not supported and return HTTP 400.
A request without a valid key returns 401, and a key that may not use the
server returns 403 forbidden.
MCP calls count toward the same per-key rate limits as the REST API; see
Rate limits. Test mode is the key’s mode: test keys
create test groups, send no email and move no money.
README resource
The agent instructions (when to quote, what to send, how to present the versions) are the MCP resourceprescience://broker/readme, read with
resources/read, and Markdown at GET /api/partner/v1/mcp/readme, which needs
no key. The partner portal shows the same text under Fit guidelines. The server’s initialize instructions and the quote_group description also give the README URL, so an agent can find it without the resource.