practicepanther-mcp

practicepanther-mcp

MCP server for PracticePanther legal practice management software. Enables reading and creating matters, contacts, time entries, invoices, and more via natural language.

Category
访问服务器

README

PracticePanther MCP

Model Context Protocol (MCP) server for PracticePanther — cloud-based legal practice management software for solo and small-to-mid law firms.

Talk to PracticePanther from Claude, Cursor, or any MCP client. Read matters (cases), client accounts, contacts, time entries (billable hours), invoices, activities, tasks, calendar events — and create new records. Built against PracticePanther's public OAuth 2 + REST + OData API.

No existing MCP for PracticePanther — this is the first.

What you can do with it

You:   "List open matters for account 'Acme Corp' and show last week's time entries."
Claude: *find_accounts → find_matters (odata filter status=open) → find_time_entries*

You:   "Log 2.5 hours on matter 4421 for Sarah Lee today — research on the deposition brief."
Claude: *create_time_entry with matterId=4421, userId=<Sarah's>, date=today, hours=2.5,
        description="Research: deposition brief", billable=true*

You:   "Show all unpaid invoices over 60 days old across the firm."
Claude: *find_invoices (status=sent/overdue, startDate=2024-04-01) → summary*

You:   "Book a hearing for matter 7788 on Friday May 30 at 2pm — judge Miller, courthouse 5."
Claude: *create_event with matterId=7788, startsAt, attendees, location*

Why this exists

  • PracticePanther's web UI is fine for solo use but doesn't expose firm-wide rollups (which matters are bleeding hours, which clients are slow-paying, who's about to blow a statute).
  • Logging billable hours from the UI requires click-through per entry — Claude can batch-log 10 entries in a single conversation.
  • The legal vertical has had Clio MCP servers for over a year; solo and small firms on PracticePanther had nothing equivalent.
  • For solo/small-firm attorneys, automating "what did I bill this week?" / "what's overdue?" / "log these 6 hours" is the most concrete, recurring time-save.

Install

pip install -e .

Authenticate (one-time)

PracticePanther uses OAuth 2 authorization-code flow. The included helper script runs the full flow locally and prints the env vars to set:

practicepanther-mcp-auth --client-id <your_client_id> --client-secret <your_client_secret>

This opens your browser, walks you through PracticePanther login, captures the redirect on http://localhost:8765/callback, exchanges the code for tokens, and prints:

export PRACTICEPANTHER_ACCESS_TOKEN="..."
export PRACTICEPANTHER_REFRESH_TOKEN="..."
export PRACTICEPANTHER_CLIENT_ID="..."
export PRACTICEPANTHER_CLIENT_SECRET="..."

To register an OAuth app, contact PracticePanther support or your account manager — they issue client_id + client_secret per integration.

Configure

Once you have tokens, set them in your shell (or paste into the Claude Desktop config below):

export PRACTICEPANTHER_ACCESS_TOKEN="..."
export PRACTICEPANTHER_REFRESH_TOKEN="..."
export PRACTICEPANTHER_CLIENT_ID="..."
export PRACTICEPANTHER_CLIENT_SECRET="..."

Refresh tokens last 60 days. The MCP client auto-refreshes the access token; when the refresh token expires, just re-run practicepanther-mcp-auth.

Use with Claude Desktop

{
  "mcpServers": {
    "practicepanther_mcp": {
      "command": "practicepanther_mcp",
      "env": {
        "PRACTICEPANTHER_ACCESS_TOKEN": "...",
        "PRACTICEPANTHER_REFRESH_TOKEN": "...",
        "PRACTICEPANTHER_CLIENT_ID": "...",
        "PRACTICEPANTHER_CLIENT_SECRET": "..."
      }
    }
  }
}

Tools (25)

Tool Type What it does
health_check Diagnostic Verifies credentials by listing users
find_matters Read Search matters (cases) — supports OData $filter, $orderby, $select
get_matter Read Single matter with full detail
create_matter Write Open new matter
update_matter Write Patch matter fields
find_accounts Read Search client accounts
get_account Read Single client account
create_account Write New client account
find_contacts Read List contacts on accounts
create_contact Write New contact
find_time_entries Read The killer feature — billable hours across the firm
get_time_entry Read Single time entry
create_time_entry Write Log billable/non-billable time
update_time_entry Write Patch time entry
find_invoices Read List invoices (filter by status, matter, account, date)
get_invoice Read Single invoice with line items
create_invoice Write New invoice
find_activities Read Calls, emails, meetings
create_activity Write Log activity against matter
find_tasks Read Tasks (to-dos)
create_task Write New task
find_events Read Calendar events (hearings, deadlines)
create_event Write New calendar event
list_users Reference Firm staff (attorneys, paralegals)
list_practice_areas Reference Practice areas (Family Law, PI, etc.)
list_expense_categories Reference Expense categories

API coverage

Maps MCP tools to PracticePanther's OData-enabled REST API (/api/v2/*). The full surface is exposed via Swagger UI: https://app.practicepanther.com/swagger/ui/index.

This MCP exposes the resources a solo/small-firm attorney most often needs: matters, accounts, contacts, time entries, invoices, activities, tasks, calendar. Document management and trust accounting endpoints are intentionally out of scope for v0.1 — open an issue if you need them.

Rate limits

PracticePanther throttles at the OAuth-app level. The client auto-retries once on 401 (refreshes the access token) but does not retry on 429 — slow down if you hit rate limits.

Development

python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
pytest
ruff check src tests
practicepanther_mcp

See also


Need a custom MCP for your SaaS?

I build production-grade MCP servers for vertical SaaS — insurance, dental, veterinary, legal, property mgmt, home services. Typical engagement: 2-4 weeks, $25K-$120K. Source-owned, MIT-licensed, no vendor lock-in.

See sanjibani/mcp-services or email schoudhury1991@gmail.com.


Ships in the sanjibani vertical-MCP portfolio — see also hawksoft-mcp, open-dental-mcp, ezyvet-mcp, jobber-mcp, mcp-vertical-template.


MIT.

Acknowledgements

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选
mcp-server-qdrant

mcp-server-qdrant

这个仓库展示了如何为向量搜索引擎 Qdrant 创建一个 MCP (Managed Control Plane) 服务器的示例。

官方
精选
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选