Developer Portal & Docs
Integrate Dockase's automated legal reasoning into your applications or connect directly to AI clients.
Get Your API Key
Dockase APIs require authentication via a secret key. Sign up for a free developer account to obtain your key and start developing custom legal solutions.
Interactive API & MCP Reference
Select an integration standard below to view setup and documentation details.
Model Context Protocol (MCP) Integration
Dockase implements the industry-standard Model Context Protocol (MCP). This allows LLMs (like Anthropic Claude, Google Gemini, or Meta Llama) to act as legal agents. By connecting the Dockase MCP server, your LLM client gains direct, secure tool-calling access to our case database, precedents database, contract review engine, and drafting tools.
Claude Desktop Setup
To add the Dockase litigation suite to your Claude Desktop application, configure the stdio MCP server. Add this configuration to your local config file:
{
"mcpServers": {
"dockase-litigation": {
"command": "python",
"args": [
"python_mcp_server.py"
],
"env": {
"DOCKASE_API_KEY": "dk_YOUR_API_KEY_HERE",
"DOCKASE_GATEWAY_URL": "https://dockase.com"
}
}
}
}
• Windows Config Path: %APPDATA%\Claude\claude_desktop_config.json
• macOS Config Path: ~/Library/Application Support/Claude/claude_desktop_config.json
Standard Client Gateway
The stdio MCP server runs locally as a bridge. It parses JSON-RPC tool schemas and calls, forwarding them to the Dockase API gateway which executes the legal search, vector retrieval, and citation guardrails.
To test locally or set up custom agents, download the public python package or clone the connector repository:
git clone https://github.com/dockase/mcp-connector
Exposed MCP Tools (20 Tools)
These tools are declared dynamically by the MCP Server on startup. The connected AI model determines which tool to execute based on user requests.
| Tool Name | Arguments Schema | Functionality |
|---|---|---|
| dockase_query | { "query": str } |
Research a specific legal question or principle under Nigerian law. |
| dockase_search_judgments | { "query": str, "limit": int? } |
Semantic vector search (RAG) to find precedents/cases matching a fact pattern. |
| dockase_analyze_contract | { "contract_text": str, "analysis_focus": str? } |
Performs senior-counsel-level legal risk analysis on contract clauses. |
| dockase_draft | { "document_type": str, "key_facts": str, "template_context": str? } |
Draft an individual agreement, NDA, contract of sale, or pleading motion. |
| dockase_deep_research | { "fact_pattern": str } |
Trigger the deep multi-step agent research flow to analyze complex factual situations. |
| dockase_chat | { "message": str, "conversation_history": list?, "thread_id": str? } |
Chat directly with the Amicus assistant agent with system-level context. |
| dockase_validate_citations | { "text": str } |
Validate court citations within a text document to eliminate AI hallucinations. |
| dockase_similar_judgments | { "judgment_id": int, "limit": int? } |
Retrieve related case judgments by database ID based on semantic distance. |
| dockase_draft_multi | { "document_set_key": str, "key_facts": str, ... } |
Draft structured bundles (e.g. motion_pack: Motion + Affidavit + Address). |
| dockase_tag_case | { "description": str, "case_name": str? } |
Auto-generate practice area tags (e.g., Land Law, Family Law) from case descriptions. |
| dockase_list_clients | None | Retrieve a directory of clients stored in the firm CRM. |
| dockase_create_client | { "full_name": str, "email": str?, ... } |
Add a new client profile record directly to the CRM. |
| dockase_list_cases | None | List active legal cases (matters) on the firm dashboard. |
| dockase_create_case | { "case_name": str, "description": str, "client_id": int, ... } |
Create a new legal matter folder linked to a specific client ID. |
| dockase_create_document | { "case_id": int, "title": str, "content": str } |
Upload/save a drafted pleading or document text to a case file. |
| dockase_check_freshness | { "case_id": int } |
Analyze documents inside a case folder for stale/expiring filing timelines. |
| dockase_list_case_updates | { "case_id": int } |
List hearing transcription logs and adjournment updates for a case. |
| dockase_log_case_update | { "case_id": int, "transcription": str, ... } |
Add a new court proceeding update, hearing transcript, or next adjournment date. |
| dockase_summarize_case | { "case_id": int } |
Generate a high-quality case summary of facts and pleadings. |
| dockase_draft_client_email | { "case_id": int, "key_points": str } |
Draft a progress update email to send to the client. |
Verify API authorization and run legal research queries via your shell:
curl -X POST https://dockase.com/v1/query \
-H "Authorization: Bearer dk_YOUR_API_KEY_HERE" \
-H "Content-Type: application/json" \
-d '{
"query": "What are the elements of proving trespass to land in Nigerian court?"
}'
Integrate Dockase reasoning tools in your backend script:
import requests
url = "https://dockase.com/v1/query"
headers = {
"Authorization": "Bearer dk_YOUR_API_KEY_HERE",
"Content-Type": "application/json"
}
payload = {
"query": "What are the elements of proving trespass to land in Nigerian court?"
}
response = requests.post(url, json=payload, headers=headers)
if response.status_code == 200:
print(response.json()["response"])
else:
print(f"Error {response.status_code}: {response.text}")
Trigger legal analysis directly from your frontend or Node.js environment:
const queryDockase = async () => {
try {
const response = await fetch("https://dockase.com/v1/query", {
method: "POST",
headers: {
"Authorization": "Bearer dk_YOUR_API_KEY_HERE",
"Content-Type": "application/json"
},
body: JSON.stringify({
query: "What are the elements of proving trespass to land in Nigerian court?"
})
});
const data = await response.json();
console.log(data.response);
} catch (error) {
console.error("API Call Failed:", error);
}
};
queryDockase();
REST API Endpoints Reference
Below is the list of active developer gateway endpoints. All requests must carry the Authorization: Bearer <key> header.
| Method & Path | Request Body / Args | Description |
|---|---|---|
| POST /v1/query | { "query": str } |
Run a legal research query using our main reasoning pipelines. |
| POST /v1/judgments/search | { "query": str, "limit": int? } |
Semantic vector search against our judgments compendium. |
| POST /v1/contract/analyze | { "contract_text": str, "analysis_focus": str? } |
AI-driven contract risk review and recommendations report. |
| POST /v1/citations/validate | { "text": str } |
Validate legal citations against our database and filter hallucinations. |
| POST /v1/cases/tag | { "description": str, "case_name": str? } |
Extract relevant legal practice areas and tags from a description. |
| POST /v1/clients | { "full_name": str, ... } |
Create a new client file folder record. |
| GET /v1/clients | None | List active client folders owned by the developer's account/firm. |
| POST /v1/cases | { "case_name": str, "client_id": int, ... } |
Open a new active legal matter under a client profile. |
| GET /v1/cases | None | List legal matters/cases database records. |
| POST /v1/documents | { "case_id": int, "title": str, ... } |
Upload/save a text draft document into a case folder. |
| GET /v1/cases/{case_id}/freshness | Path parameter: case_id | Retrieve document freshness warnings (stale or expiring filing dates). |
| GET /v1/cases/{case_id}/updates | Path parameter: case_id | List court proceeding updates and transcription logs. |
| POST /v1/cases/{case_id}/updates | { "transcription": str, ... } |
Log a new hearing transcription update and set adjourning dates. |
| POST /v1/cases/{case_id}/summarize | Path parameter: case_id | Run a structured legal analysis summary on the case details. |
| POST /v1/cases/{case_id}/draft-email | { "key_points": str } |
Draft a professional email update to the client regarding progress. |
| POST /v1/draft/multi | { "document_set_key": str, "key_facts": str } |
Draft motion packs, defense packs, or originating packs. |
Ready to connect your AI models to Dockase?
Create a developer account in under a minute. No credit card required to start building on the free tier.