MCP prompt implementations — structured workflow templates that guide LLM clients through multi-step legal tasks.
Prompts vs. tools: tools are executable actions that return data; prompts are guidance templates that tell an LLM how to approach a task and which tools to chain. They are returned to the client as message sequences, not executed server-side.
| Module | Prompts |
|---|---|
research_prompts.py |
precedent_analysis — step-by-step guide for researching and applying case precedents; statutory_interpretation — framework for reading a statute's text, structure, and legislative history |
drafting_prompts.py |
brief_construction — scaffolded workflow for drafting a legal brief from issue to conclusion; clause_comparison — structured approach to comparing contract clause alternatives |
analysis_prompts.py |
contract_review — risk-triage workflow for full contract analysis using analyze_clauses and generate_negotiation_guide; citation_validation — formatting cleanup plus authoritative source-checking workflow |
argument_prompts.py |
argument_development — IRAC-based argument scaffold for motions and briefs; authority_integration — methodology for weaving case law and statutes into a coherent argument |
__init__.py |
register_all_prompts(mcp) — wires all four prompt modules into the FastMCP instance |
| Prompt name | One-line description |
|---|---|
precedent_analysis |
Research and apply relevant case precedents to a legal issue |
statutory_interpretation |
Interpret a statute using text, structure, and legislative history |
brief_construction |
Scaffold a complete legal brief from issue statement to conclusion |
clause_comparison |
Compare contract clause alternatives and select the lower-risk option |
contract_review |
Full contract risk triage with negotiation guidance |
citation_validation |
Format and normalize citations, then route existence and good-law checks to authoritative sources |
argument_development |
Build an IRAC-structured argument for a motion or brief |
authority_integration |
Integrate case law and statutes into a coherent legal argument |
register_all_prompts(mcp) in __init__.py is called unconditionally from main.py — prompts are not gated by feature flags.
- Create
prompts/my_prompts.pywith aregister_my_prompts(mcp)function. - Decorate each prompt with
@mcp.prompt()and return a list ofMessageobjects (or a string that FastMCP wraps automatically). - Import and call
register_my_prompts(mcp)fromprompts/__init__.py.
# prompts/my_prompts.py
def register_my_prompts(mcp):
@mcp.prompt()
def my_workflow(context: str) -> str:
"""Guide the LLM through a custom legal workflow."""
return (
f"You are analyzing: {context}\n"
"Step 1: Call search_precedents to find relevant cases.\n"
"Step 2: Call extract_statute for applicable statutes.\n"
"Step 3: Synthesize findings and surface the disclaimer."
)