Connect your AI Agents to CasePeer in minutes

Merge lets you securely connect your agents to CasePeer and thousands of tools instantly

Available tools

list_case_notes

List case notes, newest first. Filter with caseid for one case's notes. Use listcases to find case IDs and createcasenote to add one.

get_case_note

Get one case note by ID. Use listcasenotes to find note IDs.

create_case_note

Add a note to a case. Use listcases for caseid, listcaseworkers for directedtoids, and listnotecategories for notecategoryids. To change a note afterwards use updatecase_note; a note cannot be moved between cases.

update_case_note

Update a case note's text, recipients, or categories. Only the fields supplied change, but directedtoids and notecategoryids replace the whole set rather than adding to it. Use listcasenotes for note_id.

list_case_tasks

List case tasks. Filter with caseid for one case or directedtoid for one assignee's workload; CasePeer offers no completion filter, so read the 'complete' field on each task. Use listcaseworkers for caseworker IDs.

get_case_task

Get one case task by ID. Use listcasetasks to find task IDs.

create_case_task

Create a task. createdbyid and directedtoid are both required caseworker IDs — call listcaseworkers first. caseid is optional and comes from listcases; priorityid comes from listpriorities. Use createreminder to have CasePeer remind someone about it.

list_reminders

List task reminders. Filter with directedtoid for one person's reminders or wassent to separate pending from delivered. CasePeer offers no per-task filter, so read the casetask link on each result.

get_reminder

Get one reminder by ID. Use list_reminders to find reminder IDs.

create_reminder

Add a reminder to an existing case task. Create the task first with createcasetask, then pass its ID as casetaskid. directedtoids are caseworker IDs from list_caseworkers. Date is YYYY-MM-DD and time is HH:MM:SS.

list_costs

List costs recorded against cases. Filter with caseid for one case's costs; CasePeer offers no payee filter, so read the contact link on each result. Use listcases to find case IDs.

get_cost

Get one cost by ID. Use list_costs to find cost IDs.

create_cost

Record a cost against a case. caseid, contactid, and amount are all required — use listcases for the case and listcontacts for the payee. The address override fields change the payee address for this cost only.

list_health_liens

List health liens — what medical providers are owed out of a settlement. Filter with caseid for one case; CasePeer offers no provider filter, so read the contact link on each result. Use listcases to find case IDs.

get_health_lien

Get one health lien by ID. Use listhealthliens to find lien IDs.

create_health_lien

Record a health lien against a case. caseid is required; use listcases. contactid must be a hospital-type contact, so call listcontacttypes for the hospital type and listcontacts filtered to it.

update_health_lien

Update a health lien's amounts, dates, or provider. Only the fields supplied change; the rest of the record is left alone. Use listhealthliens for healthlienid. A lien cannot be moved to a different case.

get_firm

Get the firm the connection is authorized against. Use this to confirm which CasePeer firm the connection points at before reading or writing case data.

list_cases

List the firm's cases, newest first. Filter with clientid, namecontains, or closed; sort with sort; narrow the payload with fields. Returns pageinfo.cursor for the next page. Use getcase for one case's full record.

get_case

Get one case by ID, including its client, status, type, staffing, and incident links. Use list_cases to find case IDs. Pass include to pull related records inline, e.g. ['caseclient'].

list_incidents

List incidents — the location, description, and client role behind each case. Filter with caseid to get the incident for one case. Use listcases to find case IDs.

get_incident

Get one incident by ID. Use list_incidents to find incident IDs.

list_injuries

List injuries recorded on cases. Filter with caseid for one case's injuries. Use listcases to find case IDs and update_injury to change whether an injury is current.

get_injury

Get one injury by ID. Use list_injuries to find injury IDs.

update_injury

Update an injury's current-state description. This is free text, not a picklist value, and it replaces whatever is recorded now rather than appending. Use list_injuries to find injury IDs.

list_case_documents

List case documents. Filter with caseid for one case, folderid for one folder, or rootlevelonly with caseid for documents filed outside any folder. Check downloadstatus before calling downloadcasedocument.

get_case_document

Get one case document by ID. Use this to poll downloadstatus after createcasedocument: the file is only downloadable once it reads Completed, and Failed means the transfer did not finish. Use listcase_documents for IDs.

create_case_document

File a document on a case. Pass the file as filereference from the file upload API, or as fileurl if you host it. CasePeer fetches it out of band: keep the source reachable until getcasedocument reports downloadstatus Completed or Failed. The firm's document storage must be connected. Use listcases for case_id; each optional ID field names its own lookup tool.

list_case_document_versions

List the stored versions of a case document. Use listcasedocuments for the document ID, and downloadcasedocument_version to fetch one version's bytes.

download_case_document

Download a case document's file content by ID. Returns UTF-8 text as text and anything else as base64 — check 'encoding' before use. Files over maxbytes (10 MB default) come back flagged truncated with no content; set returndownloadurl=true instead for a download URL, which handles any size. Only works once downloadstatus is Completed; check it with getcasedocument.

download_case_document_version

Download one stored version of a case document. Returns UTF-8 text as text and anything else as base64 — check 'encoding' before use. Files over maxbytes (10 MB default) come back flagged truncated with no content; set returndownloadurl=true instead for a download URL, which handles any size. Use listcasedocumentversions to find version IDs.

list_case_document_folders

List case document folders. Filter with caseid for one case's whole tree, parentfolderid for one folder's children, or rootlevelonly with caseid for top-level folders. Use listfolderdocuments for a folder's contents.

get_case_document_folder

Get one case document folder by ID. Use listcasedocument_folders to find folder IDs.

list_folder_documents

List the documents inside a folder, including those in its nested subfolders. Use listcasedocumentfolders to find folder IDs. To list a case's documents regardless of folder, use listcasedocuments with caseid.

create_case_document_folder

Create a document folder on a case. Pass parentfolderid to nest it, which must belong to the same case. Use listcases for caseid and listcasedocumentfolders for parentfolder_id.

list_document_categories

List the document categories the firm files documents under. Call this before createcasedocument for its category_ids.

get_document_category

Get one document category by ID. Use listdocumentcategories to find category IDs.

create_document_category

Create a document category for the firm. Check listdocumentcategories first so an existing category is reused rather than duplicated.

list_case_photos

List case photos. Filter with caseid for one case's photos. Use downloadcase_photo to fetch a photo's bytes.

get_case_photo

Get one case photo by ID. Use listcasephotos to find photo IDs.

create_case_photo

File a photo on a case. Pass the image as filereference from the file upload API, or as fileurl if you host it. CasePeer fetches it out of band: keep the source reachable until it has been fetched. Use listcases for caseid. For anything that is not a photo, use createcasedocument.

download_case_photo

Download a case photo's bytes by ID. Images come back base64-encoded — check 'encoding' before use. Files over maxbytes (10 MB default) come back flagged truncated with no content; set returndownloadurl=true instead for a download URL, which handles any size. Use listcase_photos to find photo IDs.

list_contact_types

List the contact types a contact can be created as, such as hospital, attorney, or court. Call this before createcontact for its contacttypeid, before listcontacts to filter by type, and before createhealthlien, which needs a hospital-type contact.

get_contact_type

Get one contact type by ID. Use listcontacttypes to find contact type IDs.

list_defendant_types

List the defendant types configured for the firm. listdefendants accepts no filters, so match these IDs against each defendant's returned defendanttype relationship rather than filtering the collection.

get_defendant_type

Get one defendant type by ID. Use listdefendanttypes to find defendant type IDs.

list_expert_witness_types

List the expert witness specialties configured for the firm. Call this before createcontact for its expertwitnesstypeids.

get_expert_witness_type

Get one expert witness type by ID. Use listexpertwitness_types to find these IDs.

list_languages

List the languages a client can be assigned. Call this before updateclient for its languageid.

get_language

Get one language by ID. Use list_languages to find language IDs.

list_note_categories

List the note categories configured for the firm. Call this before createcasenote or updatecasenote for their notecategoryids.

get_note_category

Get one note category by ID. Use listnotecategories to find note category IDs.

list_priorities

List the task priorities configured for the firm. Call this before createcasetask for its priority_id.

get_priority

Get one priority by ID. Use list_priorities to find priority IDs.

list_treatment_categories

List the treatment specialties configured for the firm. Call this before createcontact for its treatmentcategory_ids on a medical contact.

get_treatment_category

Get one treatment category by ID. Use listtreatmentcategories to find these IDs.

list_yes_no_maybe

List the yes/no/maybe values CasePeer uses for three-state fields. Call this before createcontact for its acceptslien_id, which is the only field that takes one.

get_yes_no_maybe

Get one yes/no/maybe value by ID. Use listyesno_maybe to find these IDs.

list_clients

List the firm's clients — the people cases belong to. Narrow the payload with fields, and use updateclient to change a client's contact details. Use listcases to see which cases a client has.

get_client

Get one client by ID. Use list_clients to find client IDs.

update_client

Update a client's details. Only the fields supplied change; the rest of the record is left alone. Use listclients for clientid and listlanguages for languageid.

list_contacts

List the firm's contacts — providers, attorneys, courts, experts, and companies. Filter with contacttypeid or contacttypename from listcontacttypes; filtering to one type also narrows each record to that type's own fields.

get_contact

Get one contact by ID. The fields returned depend on the contact's type — a hospital exposes different attributes than an attorney. Use list_contacts to find contact IDs; that tool also supports include, which this route does not.

create_contact

Create a firm contact. Call listcontacttypes first: contacttypeid decides which other fields CasePeer requires. Hospital and medical types require treatmentcategoryids (listtreatmentcategories) and acceptslienid (listyesno_maybe); person types such as attorney require firstname and lastname; police and court need neither. A rejection names the missing field.

update_contact

Update a contact's details. Only the fields supplied change; the rest of the record is left alone. Use listcontacts for contactid and listcontacttypes if changing contacttypeid.

list_defendants

List defendants across the firm's cases. Each defendant links to a contact record, a case and a defendant type. CasePeer accepts no filters here, so page through and narrow on the returned relationships.

get_defendant

Get one defendant by ID. Use list_defendants to find defendant IDs.

list_caseworkers

List the firm's users. Call this for the caseworker IDs createcasetask, createcasenote, createreminder and createcasedocument take. CasePeer accepts no filters here; read the isactive field to skip deactivated users.

get_caseworker

Get one caseworker by ID. Use list_caseworkers to find caseworker IDs.

list_client_insurances

List the insurance policies attached to clients' cases. Filter with caseid for one case, and pass include=['insurance'] to get the policy details inline rather than just the link. For the other side of a claim, use listdefendant_insurances.

get_client_insurance

Get one client insurance link by ID. Use listclientinsurances to find these IDs, and include=['insurance'] for the policy details.

list_defendant_insurances

List the insurance policies attached to defendants. Filter with defendantid for one defendant. Pass include=['insurance'] for the policy details. For the client's own coverage, use listclient_insurances.

get_defendant_insurance

Get one defendant insurance link by ID. Use listdefendantinsurances to find these IDs, and include=['insurance'] for the policy details.

validate_credential

Check that the CasePeer connection works by reading the authorized user's firm.

View all tools by creating a free accountSee more tools

How to set up Merge Agent Handler

In an mcp.json file, add the configuration below, and restart Cursor.

Learn more in the official documentation ↗

1{
2  "mcpServers": {
3    "agent-handler": {
4      "url": "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
5      "headers": {
6        "Authorization": "Bearer yMt*****"
7      }
8    }
9  }
10}
11
Copy Code

Open your Claude Desktop configuration file and add the server configuration below. You'll also need to restart the application for the changes to take effect.

Make sure Claude is using the Node v20+.

Learn more in the official documentation ↗

1{
2  "mcpServers": {
3    "agent-handler": {
4      "command": "npx",
5      "args": [
6        "-y",
7        "mcp-remote@latest",
8        "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
9        "--header",
10        "Authorization: Bearer ${AUTH_TOKEN}"
11      ],
12      "env": {
13        "AUTH_TOKEN": "yMt*****"
14      }
15    }
16  }
17}
Copy Code
Copied!

Open your Windsurf MCP configuration file and add the server configuration below.
Click on the refresh button in the top right of the Manage MCP server page or in the top right of the chat box in the box icon.

Learn more in the official documentation ↗

1{
2    "mcpServers": {
3      "agent-handler": {
4        "command": "npx",
5        "args": [
6          "-y",
7          "mcp-remote@latest",
8          "https://ah-api.merge.dev/api/v1/tool-packs/<tool-pack-id>/registered-users/<registered-user-id>/mcp",
9          "--header",
10          "Authorization: Bearer ${AUTH_TOKEN}"
11        ],
12        "env": {
13          "AUTH_TOKEN": "<ah-production-access-key>"
14        }
15      }
16    }
17  }
Copy Code

In Command Palette (Cmd+Shift+P on macOS, Ctrl+Shift+P on Windows), run "MCP: Open User Configuration".

You can then add the configuration below and press "start" right under servers. Enter the auth token when prompted.

Learn more in the official documentation ↗

1{
2  "inputs": [
3    {
4      "type": "promptString",
5      "id": "agent-handler-auth",
6      "description": "Agent Handler AUTH_TOKEN", // "yMt*****" when prompt
7      "password": true
8    }
9  ],
10  "servers": {
11    "agent-handler": {
12      "type": "stdio",
13      "command": "npx",
14      "args": [
15        "-y",
16        "mcp-remote@latest",
17        "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
18        "--header",
19        "Authorization: Bearer ${input:agent-handler-auth}"
20      ]
21    }
22  }
23}
Copy Code

FAQs on using Merge's CasePeer  MCP server

FAQs on using Merge's CasePeer  MCP server

Explore other MCP servers built and managed by Merge

calendly
Calendly
canva
Canva
clay
Clay
clickup
ClickUp
clinicaltrials
ClinicalTrials.gov
clio
Clio
cloudflare
Cloudflare
cms_coverage
CMS Coverage
coda
Coda
compliancequest
ComplianceQuest
concur
Concur
confluence
Confluence
contentful
Contentful
crustdata
Crustdata
databricks
Databricks
datadog
Datadog
deel
Deel
docrio
Docrio
docusign
DocuSign
doordash
DoorDash
dropbox
Dropbox
duffel
Duffel
dynamics365
Dynamics 365 Sales
exa
Exa

Ready to try it out?

Whether you're an engineer experimenting with agents or a product manager looking to add tools, you can get started for free now