Legal Docket Monitor MCP Server
This server enables law firms to search, monitor, and analyze federal court dockets via CourtListener, and integrate with a firm's client database for conflict checking and business development.
Search & Retrieve Dockets
Search federal dockets by case name, party name, or keywords, with optional filters for court, date range, and result limit (
search_dockets)Fetch full metadata for a specific docket by its numeric ID (
get_docket)Retrieve all or recent docket entries/filings for a case (
get_new_filings)Get a combined summary of key metadata plus the most recent filings (
get_docket_summary)List the parties and attorneys involved in a docket (
get_parties)
Monitor Dockets
Add a docket to a watch list with a human-readable matter label (
watch_docket)Remove a docket from the watch list (
unwatch_docket)List all currently watched dockets (
list_watched_dockets)Poll all watched dockets for new filings, with optional AI-powered triage that classifies each filing as routine, needs-review, or urgent (
check_watched_dockets)
Client Intelligence & Conflict Checking
Fuzzy-search the firm's client list (SharePoint, Excel, or custom webhook) to find clients matching a party or case name (
find_matching_clients)Link a CourtListener docket to a client in the firm's database, with automatic high-confidence linking or interactive confirmation when multiple matches exist (
link_docket_to_client)Health-check the configured client list backend to verify credentials and connectivity (
check_client_source)
All tools forbid background task execution, keeping the human in the loop. The client data layer is swappable (SQLite, SharePoint, etc.) without changing the tool interface.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Legal Docket Monitor MCP ServerCheck my watched dockets for new filings."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Docket Intelligence
Monitors court dockets and cross-references them against a client database to surface business development opportunities and conflict flags for law firms.
Built with MCP (Model Context Protocol), Claude, and Python. Runs locally with SQLite; deploys to Azure with SharePoint as the data layer.
Architecture
Scheduler (cron / Azure Logic App)
│
▼
Agent Orchestrator ←──── Claude API (entity extraction + classification)
│
├──► Docket Monitor MCP Server (CourtListener / Docket Alarm)
├──► Client Intel MCP Server (SQLite locally / SharePoint in prod)
└──► Notifications MCP Server (log file locally / Graph API in prod)Related MCP server: DocketBird MCP Server
Local Setup
1. Clone and install dependencies
git clone <repo>
cd docket-intelligence
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt2. Configure environment
cp .env.example .env
# Edit .env and add your ANTHROPIC_API_KEY at minimum3. Seed the local client database
python scripts/seed_clients.py4. Run the agent
# Dry run — fetches and analyzes dockets but writes nothing
python -m src.agent.orchestrator --dry-run
# Live run — logs opportunities to SQLite, sends mock notifications
python -m src.agent.orchestrator
# Filter by court and date
python -m src.agent.orchestrator --court nysd --date-from 2024-01-015. Run tests
pytest tests/ -vProject Structure
docket-intelligence/
├── src/
│ ├── models/
│ │ └── models.py # Pydantic data models (Docket, Client, Opportunity, …)
│ ├── mcp_servers/
│ │ ├── docket_monitor/
│ │ │ └── server.py # MCP server: fetches dockets from CourtListener
│ │ ├── client_intel/
│ │ │ ├── server.py # MCP server: client DB operations
│ │ │ └── sqlite_repo.py # SQLite adapter (swap for Graph adapter in prod)
│ │ └── notifications/
│ │ └── server.py # MCP server: Teams/email/tasks (logs locally)
│ └── agent/
│ └── orchestrator.py # Core AI loop connecting all three servers
├── scripts/
│ └── seed_clients.py # Populate local DB with test clients
├── tests/
│ └── test_client_repo.py # Unit tests for SQLite repo and matching
├── data/ # Local SQLite DB and notification logs (git-ignored)
├── .env.example
└── requirements.txtSwapping to Production (Microsoft)
The local → production swap is controlled by one env variable: ENV=production.
When ENV=production, the Client Intel server loads graph_adapter.py instead of
sqlite_repo.py. The MCP tool interface is identical — only the data layer changes.
See DEPLOYMENT.md for Azure setup instructions.
CourtListener Wrapper Server
src/mcp_servers/courtlistener_wrapper/server.py is a unified server that combines
the official CourtListener hosted MCP server with this project's conflict-checking and
opportunity-management tools. Use it when you want a single connection point instead of
running three separate servers.
What it exposes
Source | Tools |
Official CL MCP (proxied) | All tools from |
Conflict & client intel |
|
Combined |
|
Connecting
If COURTLISTENER_API_TOKEN is set, the wrapper connects to the official CourtListener
MCP server via OAuth SSE and proxies its full tool set. Without a token it runs in
local-only mode (direct REST API + conflict tools only).
# Run the wrapper standalone (e.g. to wire into Claude Desktop or another MCP host)
python -m src.mcp_servers.courtlistener_wrapper.serverTo point the orchestrator at the wrapper instead of the three individual servers,
replace the StdioServerParameters in orchestrator.py with a single entry:
WRAPPER_SERVER = StdioServerParameters(
command="python",
args=["-m", "src.mcp_servers.courtlistener_wrapper.server"],
)Adding a New Docket Data Source
Create
src/mcp_servers/docket_monitor/adapters/your_source.pyImplement
fetch_dockets(...)returninglist[Docket]Set
DOCKET_SOURCE=your_sourcein.envThe server picks up the new adapter via the factory in
server.py
Key Design Decisions
Adapter pattern — every external dependency sits behind an interface, making the local↔production swap clean and testable without cloud access.
MCP over direct function calls — each server can be tested, replaced, or scaled independently. The agent only knows tool names and schemas, not implementations.
Human in the loop — the agent surfaces and classifies; attorneys decide. No automated outreach without human approval.
Tenant-local in production — client data never leaves the Microsoft 365 tenant. The only external calls are reads from court data APIs and the Claude API.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/deflucaseng/legal-docket-monitor-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server