Project documents

Answer questions about cover from your own wording

Upload the policy wording, product guide or IPID to a project. AI clients connected over MCP can then answer what a product covers, excludes or requires, alongside the price, and cite the clause and page.

How it works

Upload, index, ask

The price comes from the model. What the policy covers comes from its documents. Both now sit in the same project.

01 · Upload
Add the documents behind a product
Drop a policy wording, product guide, IPID or underwriting guideline on the project page in the dashboard. PDF, Word, text and Markdown are accepted.
02 · Index
Read and indexed on the server
Ptally splits each document at its headings and numbered clauses, labels every passage with its section and page, and embeds it with a small model running on the same server.
03 · Ask
AI clients answer with the clause
Claude, ChatGPT or Cursor search the documents over MCP, then answer from the passages they get back, citing the title, section and page.
In the dashboard

Try a question before anyone else does

The Project documents card on each project page shows what is uploaded and whether it is ready. Try it now returns the passages an AI client would be given.

Project documents card
Project documents 1
Uploaded
PDF
Home Insurance Policy Wordinghome-policy-wording.pdf · 12 pages · 16 passages
ready
Try it now
Is flood damage to a basement covered?
#1Home Insurance Policy Wording · SECTION 1 BUILDINGS › 1.3 Exclusions · p.4match 0.80

We will not pay for: (a) loss or damage caused by flood to any basement used as living accommodation, unless the basement was declared to us and is shown in your schedule; (b) subsidence, heave or landslip damage to drives, patios, walls, gates and fences unless the home is damaged by the same cause at the same time; (c) escape of water or theft while the home is unoccupied; (d) damage caused by frost to any part of the buildings outside the home.

#2Home Insurance Policy Wording · SECTION 2 CONTENTS · p.5match 0.65

We will pay for loss of or damage to the contents caused by any of the causes listed under 1.1 What is covered. 2.2 Valuables Jewellery, watches and works of art are covered up to the single article limit shown in your schedule. Any single item worth more than 2,000 must be named in your schedule. 2.3 Exclusions We will not pay for theft from an unlocked outbuilding, or for loss or damage to contents kept in a basement that floods, unless the basement is shown in your schedule.

#3Home Insurance Policy Wording · SECTION 1 BUILDINGS › 1.1 What is covered · p.3match 0.69

We will pay for loss of or damage to the buildings caused by fire, smoke, lightning, explosion or earthquake; storm or flood; escape of water from any fixed water or heating installation; theft or attempted theft; subsidence, heave or landslip of the site; falling trees, aerials or lampposts; and impact by any vehicle or animal.

A real search over a synthetic 12-page home wording. The exclusion comes first; the contents exclusion and the insured perils follow.

The same documents, over MCP
Claudeptally MCP
The customer has a converted basement flat. Is flood damage down there covered on Home Insurance?
✓ptally · list_docs Home Insurance1 ready · 16 passages
✓ptally · search_docs flood damage to a basement3 passages
Not unless the basement is declared and shown in the schedule. From the policy wording:
Flood to a living basement1.3 Exclusions (a) · p.4excluded
Contents in a flooded basement2.3 Exclusions · p.5excluded
Flood elsewhere in the home1.1 What is covered · p.3covered
If declaredshown in your schedulecovered
Message
MCP

Three tools, all read only

Documents are uploaded in the dashboard. Over MCP, AI clients can list, search and read them, signed in as you.

ToolWhat it returns
list_docsEvery document on a project, with its status: indexed, still indexing, or failed and why.
search_docsThe passages that answer a question, scored by meaning and by keywords. Pass the version that priced a quote so the wording matches it.
get_docA run of passages either side of a hit, for a clause that is cut off or points to a defined term.
search_docs request
{
  "jsonrpc": "2.0",
  "id": 7,
  "method": "tools/call",
  "params": {
    "name": "search_docs",
    "arguments": {
      "project_reference": "<uuid>",
      "query": "Is flood damage to a basement covered?",
      "k": 3
    }
  }
}

get_project and run_quote also list the documents that apply to the version, so the client knows there is something to search.

Result, trimmed to two of three passages
{
  "project_reference": "<uuid>",
  "version_reference": "<uuid>",
  "query": "Is flood damage to a basement covered?",
  "documents": {
    "indexed": 1,
    "pending": 0,
    "failed": 0
  },
  "results": [
    {
      "document_reference": "6c1d2f0a-4b7e-4e5c-9a3d-2f8b1c7e9d40",
      "title": "Home Insurance Policy Wording",
      "filename": "home-policy-wording.pdf",
      "version_reference": null,
      "chunk": 5,
      "page": 4,
      "section": "SECTION 1 BUILDINGS › 1.3 Exclusions",
      "text": "We will not pay for: (a) loss or damage caused by flood to any basement used as living accommodation, unless the basement was declared to us and is shown in your schedule; (b) subsidence, heave or landslip damage to drives, patios, walls, gates and fences unless the home is damaged by the same cause at the same time; (c) escape of water or theft while the home is unoccupied; (d) damage caused by frost to any part of the buildings outside the home.",
      "score": 0.8797,
      "similarity": 0.7998,
      "keyword": 0.5989
    },
    {
      "document_reference": "6c1d2f0a-4b7e-4e5c-9a3d-2f8b1c7e9d40",
      "title": "Home Insurance Policy Wording",
      "filename": "home-policy-wording.pdf",
      "version_reference": null,
      "chunk": 6,
      "page": 5,
      "section": "SECTION 2 CONTENTS",
      "text": "We will pay for loss of or damage to the contents caused by any of the causes listed under 1.1 What is covered. 2.2 Valuables Jewellery, watches and works of art are covered up to the single article limit shown in your schedule. Any single item worth more than 2,000 must be named in your schedule. 2.3 Exclusions We will not pay for theft from an unlocked outbuilding, or for loss or damage to contents kept in a basement that floods, unless the basement is shown in your schedule.",
      "score": 0.7227,
      "similarity": 0.6546,
      "keyword": 1
    }
  ],
  "next_steps": "Answer from these passages only, and cite each one you use by title, section and page. …"
}

score ranks the passages within this search. similarity is how close the meaning is to the question; keyword is the exact term match.

API

Search from your own systems

The same search is on the REST API, for a broker portal or a contact centre tool. Documents are added in the dashboard; the API reads and searches them.

Search
curl -G "https://app.ptally.ai/api/projects/$PROJECT_REFERENCE/documents/search" \
  -H "client_id_key: $PTALLY_CLIENT_ID" \
  -H "client_secret_key: $PTALLY_CLIENT_SECRET" \
  --data-urlencode "q=Is flood damage to a basement covered?" -d k=3
Endpoints

Add version_reference to search the documents that apply to one version, such as the version that priced a quote.

Indexing

What happens to a document

Everything runs on the server that holds your projects, including a self-hosted install in your own cloud.

PartHow it works
File typesPDF, Word (.docx), plain text and Markdown, up to 25 MB each. Scanned PDFs have no text layer, so they fail with a message saying they need OCR first.
PassagesSplit at headings and numbered clauses, so each passage carries its section, such as Section 1 Buildings › 1.3 Exclusions, and its page. Running headers and footers are dropped.
EmbeddingsA small open model, bge-small-en-v1.5, runs on the server's CPU. No document text is sent to an outside service to be indexed.
SearchEach passage is scored by meaning and by keywords, blended 70 to 30. Keywords catch exact terms such as clause numbers and defined terms.
VersionsA document applies to every version of its project, or can be pinned to one version when the wording changes with the rates.
StatusIndexing runs in the background, one document at a time, and resumes after a restart. Uploading the same file twice returns the first copy.
Why do it this way

Cover answers you can check

Every answer points back to a passage, so an underwriter or a customer can read the clause for themselves.

Grounded
Answers quote the wording
The MCP server tells AI clients to answer only from the passages returned, cite each one, and say when the documents don't cover a question.
Matched
The wording for the price
Search can be scoped to the version that priced a quote, so a question about cover is answered from the documents that went with that price.
Private
Indexed where your projects live
Extraction, embedding and search all run on the Ptally server. Only the passages a search returns go to the AI client that asked for them.
One source
Every channel, same answer
Brokers, customers and your own staff ask through whichever AI client they use. They all search the same uploaded documents.