Furva for developers

Pet lab interpretation for your app or agent

Furva explains dog and cat lab results in easy to understand language, over the Model Context Protocol.

MCP endpoint (Streamable HTTP)
https://mcp.furva.ai/functions/v1/mcp
5completed interpretations free, one time per account
$3per completed interpretation after that
60tool calls per minute per key
3tools: interpret, biomarker info, retest timing

What Furva does

Send a dog or cat lab result and Furva returns, for each value, whether it is within the reference range, what the marker measures, and Questions To Ask Your Vet. It is educational only: it never diagnoses and never recommends treatment, and every answer carries that disclaimer.

Reference rangeWhether each value is within the range
What it measuresWhat each marker means, in easy to understand language
Questions To Ask Your VetA short list to bring to the visit

Get a free key

Your first 5 completed interpretations are free, one time per account, then $3 each. Sign in with your email to create a key.

Get a free key

Authentication

Furva supports two ways in. Pick the one that matches who your users are.

For apps acting for a pet owner

OAuth 2.1

Assistants such as ChatGPT and Claude connect with OAuth: the pet owner signs in to Furva and approves access, and the assistant then works with that owner's own pets and reports. Discovery follows the MCP authorization spec. An unauthenticated request gets a 401 whose WWW-Authenticate header points to the protected resource metadata. The live documents:

The OAuth path is free for pet owners and is not part of developer pricing.

For builders

API keys

Your own app or agent uses an API key. Keys start with fmcp_ and go in the Authorization header on every request:

Header
Authorization: Bearer FMCP_KEY
  • 5 completed interpretations free per account, one time, then $3 each.
  • 60 tool calls per minute per key.

Keys see three tools: interpret_lab_report, get_biomarker_info and suggest_retest_timing. That is exactly what the server's tools/list returns. If your client also shows a tool named mcp_auth, it comes from the client's own sign-in handling, not from Furva, and you can ignore it.

Errors

Errors are JSON with an error field you can branch on:

401
unauthorized or invalid_api_key

The Authorization header is missing, or the key is wrong or revoked. Check the header and the key on your keys page.

401 unauthorized or invalid_api_key
{
  "error": "invalid_api_key",
  "message": "Missing, invalid or revoked credentials."
}

Connect a client

Replace FMCP_KEY with your key in each sample. Keep the word Bearer and the space after it.

  1. In Claude, open Customize, then Connectors, and choose Add custom connector. On Team and Enterprise plans an owner does this under Organization settings, then Connectors.
  2. Name it Furva and enter the MCP server URL above.
  3. To use your API key, set Authentication to No sign-in, open Request headers, choose authorization and enter the value below, including Bearer. Request headers are in beta in Claude and may not appear for every organization yet.
  4. Without a key, leave the detected sign-in option on. Each person then signs in to their own Furva account with OAuth.
  5. Select Add, then turn Furva on for a conversation from the Connectors menu.
authorization header value
Bearer FMCP_KEY

Walkthrough

These are the first four calls an integration makes, with the responses the live endpoint returns. The lab values come from a synthetic test report (a fabricated adult dog panel made for testing, never a real patient). Long text in the responses is shortened with "...".

1

initialize

Opens the session. Send your key on every request; the server keeps no session state between calls.

Request
POST https://mcp.furva.ai/functions/v1/mcp
Authorization: Bearer FMCP_KEY
Content-Type: application/json
Accept: application/json, text/event-stream

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "initialize",
  "params": {
    "protocolVersion": "2025-06-18",
    "capabilities": {},
    "clientInfo": { "name": "my-app", "version": "1.0.0" }
  }
}
2

tools/list

API keys see three tools, and the server returns exactly these three. A client may show an extra mcp_auth tool of its own; Furva does not serve it. Descriptions and input schemas are shortened here.

Request
{ "jsonrpc": "2.0", "id": 2, "method": "tools/list" }
3

get_biomarker_info

Included in every plan and never charged. The response also carries a plain-text version in result.content.

Request
{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "get_biomarker_info",
    "arguments": { "biomarker": "TRIG", "species": "dog" }
  }
}
4

interpret_lab_report

One completed interpretation, the billable unit. Four values from the synthetic report: creatinine, BUN, ALT and triglycerides.

Request
{
  "jsonrpc": "2.0",
  "id": 4,
  "method": "tools/call",
  "params": {
    "name": "interpret_lab_report",
    "arguments": {
      "results": [
        { "biomarker_code": "CREA", "value": 0.5, "unit": "mg/dL", "species": "dog" },
        { "biomarker_code": "BUN", "value": 16, "unit": "mg/dL", "species": "dog" },
        { "biomarker_code": "ALT", "value": 51, "unit": "U/L", "species": "dog" },
        { "biomarker_code": "TRIG", "value": 1262, "unit": "mg/dL", "species": "dog" }
      ]
    }
  }
}

After initialize, send the notifications/initialized notification; the server answers it with 202 and no body. Clients that send Accept: text/event-stream receive the same JSON-RPC message as one server-sent event.

Pricing and limits

You pay only for completed interpretations: the first 5 on your account are free, one time, then $3 each. Biomarker lookups and retest timing are always included.

See pricing

Support

Email support@furva.ai. Read our Privacy Policy and Terms of Service.