---
title: "Developers"
description: "Use Spot’s anonymous public profile API and public MCP server to retrieve published product and insurance research."
canonical: "https://spot.insure/developers"
page-type: "answer"
entities: ["Spot", "Tools for Enlightenment Inc."]
---

[Human-readable page](https://spot.insure/developers)

# Developers

## Choose a retrieval interface

| Need | Interface | Result |
| --- | --- | --- |
| Company identity, contact fields, published pricing | GET https://spot.insure/api/v1/profile | Structured public profile JSON |
| Full text of a known public page | GET its .md URL; use /index.md for the homepage | Markdown with canonical URL and available review metadata |
| Find relevant evidence | MCP search_knowledge | Bounded excerpts from registered public pages |
| Read a page through MCP | MCP get_page | A registered public page |
| Compare a provider pair | MCP compare_providers | An existing published comparison; either provider order is accepted |
| Generate an answer from public evidence | MCP ask_spot | A cited answer, or an explicit limited/unavailable result with retrieved sources |

## Retrieval sequence

1. Find a page in [the public index](https://spot.insure/llms.txt) or use search_knowledge.
2. Read the relevant full page before relying on a search excerpt. Preserve its canonical URL and available verification dates in citations.
3. For insurance research, retain source qualifications and quote-specific unknowns. The MCP server does not check the live web.
4. If ask_spot is limited or unavailable, use its retained sources and retrieval tools. A generation failure does not establish that evidence is absent.

The reference and runnable examples below describe the public interfaces. Customer policy documents, submissions, certificates, and insurance transactions are outside their scope.

## Public profile API

Send GET https://spot.insure/api/v1/profile for Spot’s public company and product profile. Add include_pricing=false to omit the pricing array. The OpenAPI description is available at https://spot.insure/openapi.json.

The profile API applies a best-effort limit of 60 requests per minute for each client on each running server instance. Its RateLimit headers describe only the responding instance’s current window, not a deployment-wide quota. Invalid include_pricing values return 400, and requests that exceed the responding instance’s limit return 429 with Retry-After and RateLimit headers. Responses use structured JSON errors with an error, message, and resolution.

## Public MCP server

Point an MCP client that supports Streamable HTTP at https://spot.insure/mcp. The remote-server manifest is published at https://spot.insure/server.json. The endpoint is stateless, so clients do not need an MCP session ID. Clients must send valid MCP protocol headers; browser origins are validated.

Current 2026-07-28 clients call tools directly with the required MCP-Protocol-Version, Mcp-Method, and Mcp-Name headers and request metadata. The first example below shows that request. The second example documents initialize-based compatibility for 2025 clients.

The server exposes search_knowledge for bounded excerpts from published Spot pages and insurance research, get_page for a registered public page, compare_providers for a published provider pair in either order, and ask_spot for a cited answer grounded in retrieved public evidence.

The MCP server can list and read published Markdown resources. It does not browse the live web, fetch arbitrary URLs, accept document uploads, expose customer data, or buy, bind, or change insurance.

## Generation limits and unavailable responses

ask_spot accepts questions up to 2,000 characters, uses at most 24,000 characters of retrieved context, limits generated output to 2,048 tokens, and has a 20-second execution budget.

Generation is limited to 10 attempts per minute per client and 1,000 attempts per UTC day across the deployment. A client limit returns status limited with reason client_rate_limit; a deployment limit returns status limited with reason daily_generation_limit.

Quota storage failures return status unavailable with reason quota_unavailable. Missing or invalid inference configuration returns status unavailable with reason inference_unavailable. Generation failures return status unavailable with reason generation_failed, and the 20-second timeout returns status unavailable with reason generation_timeout. Every unavailable or limited result retains retrieved sources, and retrieval tools remain available.

Generated answers return readable text plus structured claims, evidence identifiers, citations, qualifications, and unanswered questions. Clients should preserve explicit unknowns and should not automatically retry ambiguous inference failures.



## Examples

### Search Public Knowledge with MCP 2026-07-28

```bash
curl --fail-with-body --silent --show-error \
  --request POST 'https://spot.insure/mcp' \
  --header 'Content-Type: application/json' \
  --header 'Accept: application/json, text/event-stream' \
  --header 'MCP-Protocol-Version: 2026-07-28' \
  --header 'Mcp-Method: tools/call' \
  --header 'Mcp-Name: search_knowledge' \
  --data '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_knowledge","arguments":{"query":"What does Spot cost?","limit":3},"_meta":{"io.modelcontextprotocol/protocolVersion":"2026-07-28","io.modelcontextprotocol/clientInfo":{"name":"spot-docs-example","version":"1.0.0"},"io.modelcontextprotocol/clientCapabilities":{}}}}'
```

### Legacy MCP 2025 compatibility

```bash
curl --fail-with-body --silent --show-error \
  --request POST 'https://spot.insure/mcp' \
  --header 'Content-Type: application/json' \
  --header 'Accept: application/json, text/event-stream' \
  --data '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"spot-docs-example","version":"1.0.0"}}}'

curl --fail-with-body --silent --show-error \
  --request POST 'https://spot.insure/mcp' \
  --header 'Content-Type: application/json' \
  --header 'Accept: application/json, text/event-stream' \
  --header 'MCP-Protocol-Version: 2025-06-18' \
  --data '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"search_knowledge","arguments":{"query":"What does Spot cost?","limit":3}}}'
```

## Sources

- [Spot Authentication Guide](https://spot.insure/auth)
- [Spot MCP Server Manifest](https://spot.insure/server.json)
- [Spot OpenAPI Description](https://spot.insure/openapi.json)
- [Spot Agent Index](https://spot.insure/llms.txt)
- [CL SDK Documentation](https://spot.insure/docs)

## Related Pages

- [Authentication](https://spot.insure/auth)
- [Frequently asked questions](https://spot.insure/faq)
- [Pricing](https://spot.insure/pricing)

## Agent and Developer Resources

- [Markdown page](https://spot.insure/developers.md)
- [Developer resources](https://spot.insure/developers)
- [Public MCP server](https://spot.insure/mcp)
- [MCP server manifest](https://spot.insure/server.json)
- [OpenAPI description](https://spot.insure/openapi.json)
- [Public page index](https://spot.insure/llms.txt)
