Skip to main content
Glama
oktopeak

filevine-mcp

by oktopeak

Filevine MCP — Claude Integration

Built by Oktopeak — AI transformation & automation for law firms

Digital transformation for legal and healthcare businesses. We build AI integrations, workflow automation, and custom software your firm owns outright — including this connector. → Book a 30-min call

An open-source MCP (Model Context Protocol) server connecting Claude to Filevine practice management platform. Access cases, contacts, documents, notes, tasks, and custom PI data from Claude with automatic rate limiting and audit logging.

Supported Endpoints: 15 tools covering the Filevine v2 REST API.

TIP

Not a developer? You don't need to be.

The README below assumes someone comfortable editing a JSON config file. If that's not you or your team, we deploy this for law firms: scoped credentials, audit log wired in, one custom workflow, training.

See Guided MCP Setup, or book a 30-min call

Jump to: Setup · Available tools · Compliance & security · Need it deployed for you? · Other connectors


Setup

1. Prerequisites

  • Node.js 18+

  • Filevine account with API access enabled

  • Client ID, Client Secret, and Personal Access Token (PAT) from your firm's Filevine settings

  • Claude Code, MCP client, or compatible application

2. Get Filevine Credentials

  1. Personal Access Token (PAT)

    • Go to Filevine Settings → Access Tokens → Generate PAT

    • Copy and save securely

  2. Client Credentials

    • Go to Settings → Client Secrets → Create Client ID + Client Secret

    • Valid for 1 year, can be rotated anytime

    • Copy both values

  3. Organization & User IDs (auto-discovered on first auth call)

    • The server will discover these from /v2/users/me on first run

3. Environment Variables

Copy .env.example to .env:

# Filevine OAuth client credentials
FILEVINE_CLIENT_ID=<from Settings → Client Secrets>
FILEVINE_CLIENT_SECRET=<from Settings → Client Secrets>
FILEVINE_PAT=<from Settings → Access Tokens>

# API region (us or ca)
FILEVINE_REGION=us

# Token encryption key (generate new one)
# node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
ENCRYPTION_KEY=<64-character-hex-string>

4. Install & Build

npm install
npm run build

5. Run the Server

# Start the server
npm start

# Or use MCP inspector for debugging
npm run inspect

The server listens on stdio and outputs connection status to stderr.

6. Authenticate

Before using any Filevine tools, call the authenticate tool:

Tool: authenticate
→ Exchanges PAT for access token
→ Discovers org_id and user_id
→ Stores encrypted tokens in ~/.oktopeak-filevine/tokens.enc

Tokens auto-refresh before expiry (3600s TTL). Call logout to clear stored tokens.


Related MCP server: filevine-mcp

Tools (15 Total)

Authentication (3 tools)

Tool

Purpose

authenticate

Exchange PAT for access token and cache org/user IDs

auth-status

Check authentication status and token expiry

logout

Clear stored tokens

Cases — Projects (2 tools)

Tool

Purpose

list-cases

List cases (active, closed, pending); search by name/number

get-case

Get full case details by ID

Contacts (3 tools)

Tool

Purpose

search-contacts

Search contacts by name, email, or phone across all cases

get-contact

Get contact details by ID

list-case-contacts

List all contacts on a specific case

Notes (2 tools)

Tool

Purpose

list-notes

List case notes; supports general, phone_call, and internal types

create-note

Create a note (e.g., AI summary, findings, follow-ups)

Documents (1 tool)

Tool

Purpose

list-documents

List case documents with metadata (name, type, size, URL, dates)

Note: Returns document metadata only — no binary content. Use returned URLs to fetch document content if needed.

Tasks (2 tools)

Tool

Purpose

list-tasks

List case tasks by status (open, completed, overdue)

create-task

Create a new task with title, description, assignee, due date

Known Issue: The targetDate field may be ignored by the Filevine API as of Aug 2025. Workaround: set tasks via UI.

Custom Data — Collections (2 tools)

Tool

Purpose

discover-schema

Map your firm's custom sections (medical records, liens, settlements, etc.)

get-collection

Fetch custom collection data using discovered selectors

Why collections matter: Unlike standardized case fields, each firm builds custom "Collection sections" for PI workflows. The discover-schema tool finds your firm's structure.

Example workflow:

  1. Call discover-schema → see available sections (e.g., "MedicalRecords", "Liens")

  2. Use selector from discovery → get-collection to fetch PI-specific data


Rate Limiting & Performance

Filevine Rate Limits:

Endpoint

Limit

Standard

320 req/endpoint/min

Billing

250 req/endpoint/min

Reports/Vitals

5 req/endpoint/min

VineSign

10 req/user/month

Implementation:

  • Token bucket at 300 req/min (conservative)

  • Exponential backoff on 429 Too Many Requests (1s → 2s → 4s → ... → 30s max)

  • Automatic wait before rate limit breach


API Details

Request Flow

  1. Token Exchange (on first authenticate call)

    POST https://identity.filevine.com/connect/token
    client_id, client_secret, grant_type=personal_access_token, token=PAT
    → access_token (3600s), refresh_token, scopes
  2. Org/User Discovery

    GET /v2/users/me
    Authorization: Bearer {access_token}
    → {id: user_id, org_id: org_id}
  3. Every API Request (3 required headers)

    Authorization: Bearer {access_token}
    x-fv-orgid: {org_id}
    x-fv-userid: {user_id}

Base URLs

  • US: https://api.filevine.io

  • CA: https://api.filevine.ca

Set via FILEVINE_REGION environment variable.

Authentication Headers

The biggest difference from other legal APIs: every request needs 3 headers, not just Authorization. Filevine uses x-fv-orgid and x-fv-userid to scope queries to the correct organization and user context.


Architecture

src/
├── index.ts                      # Server entry point
├── filevine-client.ts            # API client with 3-header middleware
├── auth/
│   ├── authTools.ts              # authenticate, auth-status, logout
│   ├── oauth.ts                  # PAT token exchange + org/user discovery
│   └── token-store.ts            # AES-256-GCM encrypted token storage
├── tools/
│   ├── cases.ts                  # list-cases, get-case
│   ├── contacts.ts               # search-contacts, get-contact, list-case-contacts
│   ├── notes.ts                  # list-notes, create-note
│   ├── documents.ts              # list-documents
│   ├── tasks.ts                  # list-tasks, create-task
│   └── collections.ts            # discover-schema, get-collection
├── resources/
│   ├── auth-status.ts            # Auth status resource (filevine://auth/status)
│   └── compliance.ts             # Compliance notice
├── audit/
│   └── logger.ts                 # Audit logging (JSON-lines)
└── utils/
    └── rate-limiter.ts           # Token bucket + 429 backoff

Token Storage

Tokens are encrypted with AES-256-GCM and stored locally:

  • Location: ~/.oktopeak-filevine/tokens.enc

  • Encryption: AES-256-GCM with random IV + auth tag

  • Key: ENCRYPTION_KEY from .env (64-char hex)

Audit Logging

Every tool call is logged to ~/.oktopeak-filevine/audit.log:

  • Timestamp, tool name, arguments (secrets redacted)

  • Outcome (success/error), user ID, case ID, result count

  • Supports ABA Opinion 512 compliance documentation


Error Handling

Common Errors

Error

Cause

Fix

ENCRYPTION_KEY is not set

Missing env var

Generate key: node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"

PAT exchange failed (401)

Invalid credentials

Verify Client ID, Secret, PAT from Filevine Settings

Failed to discover user info

Token doesn't have required scopes

Regenerate PAT and Client Credentials in Filevine

429 Too Many Requests

Rate limit hit

Server auto-backs off; normal behavior under load

Unknown collection selector

Selector not found

Run discover-schema to find available selectors


Development

TypeScript

  • Strict mode enabled

  • ES2022 target, Node16 modules

  • npm run buildbuild/ directory

Dependencies

  • @modelcontextprotocol/sdk — MCP protocol

  • dotenv — Environment loading

  • zod — Schema validation for tool parameters

  • crypto, fs, http — Node builtins

Debugging

npm run inspect

Opens MCP inspector at http://localhost:3000 — test tools, check parameters, verify responses.

Testing

npm run build
npm start
# In another terminal:
npm run inspect

Resources

Official Filevine

Reference Implementations


Compliance & Security

  • Data Handling: All Filevine data fetched on-demand — nothing cached locally

  • Token Storage: AES-256-GCM encrypted on disk; decryption requires ENCRYPTION_KEY

  • Audit Logging: Every tool call logged with redacted secrets

  • Rate Limiting: 300 req/min rolling window + 429 backoff protects your account

  • Write Access: Only create-note and create-task modify data

  • Token Refresh: Auto-refresh 5 min before expiry (3600s TTL)

See src/resources/compliance.ts for full compliance notice.


License

MIT — Oktopeak


Need more than the connector?

The open-source connector reads your Filevine data and lets Claude work with it. That handles about 20% of what most firms eventually want.

We help two ways, depending on your scope:

Guided MCP Setup: We deploy the connector in your firm with scoped credentials, audit log wired into your stack, a custom workflow designed with your team, and training. Scope and pricing tailored to your firm. → oktopeak.com/services/mcp-guided-setup/

Filevine Integration: For custom reporting, project schema work, document and intake automation, and the production software layer around Filevine. → oktopeak.com/services/filevine-integration/

Want a polished overview of this connector with FAQ? → oktopeak.com/filevine-mcp/

Want to talk first? → Book a 30-min scoping call


Other connectors by Oktopeak

We ship the same kind of connector for other practice management platforms. Each has its own overview page on oktopeak.com:

Same architecture, same audit logging, same encryption at rest. All MIT licensed.


Supporting this project

This connector is free, MIT licensed, and maintained by Oktopeak. It always will be — we don't take donations. If it saved you time, the things that actually help:

  • Star this repo. It is genuinely how other firms find it.

  • Tell another firm running Filevine.

  • Leave a review if we helped you directly.

  • Need it deployed, extended, or maintained for your firm? Commercial support — that is what funds the free work.

  • Firm-wide deployment: rolling Claude + this connector out to a whole firm (Claude Cowork, multi-user, security review)? See Firm Deployment.

Who we are

Oktopeak — digital transformation for law firms and healthcare.

We're a 7-person in-house product team building AI solutions for regulated industries: AI integrations, workflow automation, and custom software our clients own outright. We maintain five open-source MCP connectors — Clio, MyCase, Filevine, Lawmatics, and IntakeQ — and deploy them inside real practices with scoped credentials, audit logs, and workflows built around how your team actually works.

Available Tools

15 tools
authenticateA

Exchange your Filevine Personal Access Token (PAT) for an access token. Must be called once before using other Filevine tools. Requires FILEVINE_CLIENT_ID, FILEVINE_CLIENT_SECRET, and FILEVINE_PAT in .env

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It reveals the token exchange mechanism, env var requirements, and the one-time prerequisite nature. However, it does not describe what happens on success or failure, or whether it establishes a persistent session, which would add further transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is remarkably concise—two sentences that front-load the purpose and follow with the necessary requirements. Every word contributes meaning, with no redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (zero params, no output schema), the description covers the essential context: what it does, when to call it, and what it needs. A minor gap is that it doesn't explicitly state that the obtained access token is stored for subsequent calls, but the 'must be called once' phrase strongly implies this.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters, so the description is the only source of semantic detail. It compensates by specifying the required environment variables (FILEVINE_CLIENT_ID, FILEVINE_CLIENT_SECRET, FILEVINE_PAT), which are effectively the tool's inputs. This exceeds the baseline for zero-parameter tools.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: exchanging a Personal Access Token for an access token. It also specifies a prerequisite role, distinguishing it from sibling authentication tools like auth-status and logout.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use: 'Must be called once before using other Filevine tools.' This provides clear timing and prerequisite context, leaving no ambiguity about the tool's placement in the workflow.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

auth-statusA

Check whether the server is authenticated with Filevine and when the token expires.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It explicitly states this is a read-only check ('check whether'), which signals non-destructive behavior, and adds the specific detail about token expiry. This is sufficient for a simple status tool, though it could mention network dependency or error cases.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, information-dense sentence that immediately states the action and the key informational output. No filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless read-only tool with no output schema, the description gives a complete picture: it tells the agent what is checked and what will be reported (authenticated state and expiry time). There is no missing scope, inputs, or outputs that the agent would need to know.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the baseline is 4. The description correctly avoids mentioning non-existent parameters and focuses purely on the tool's return value, which is all that is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('check') and resource ('server authenticated with Filevine', 'token expires'), clearly distinguishing it from sibling tools like authenticate and logout. It precisely names the query being answered.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The tool's purpose implies usage as a pre-flight authentication check, but it does not explicitly state when to use this tool vs alternatives (e.g., before calling other tools, or that authenticate is needed if not authenticated). The context is implied, not stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create-noteA

Create a new note on a case. Useful for logging AI summaries, findings, or follow-up items.

ParametersJSON Schema
NameRequiredDescriptionDefault
case_idYesThe Filevine project ID
contentYesThe note text content
note_typeNoType of notegeneral

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavior. It only restates the action ('create') and gives purpose, but does not mention permissions, side effects, note visibility, or response behavior. This is insufficient for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with the primary action and followed by relevant use cases. No filler or redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the core action and context, and the schema documents all parameters. However, without annotations or output schema, it could benefit from behavioral details, but for a simple creation tool it is largely complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides descriptions for all three parameters (case_id, content, note_type), giving high coverage. The description adds no additional parameter semantics, thus the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Create a new note on a case' with a specific verb and resource, and adds context on intended use cases (logging AI summaries, findings, follow-ups), distinguishing it from siblings like create-task and list-notes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear context for when to use the tool ('logging AI summaries, findings, or follow-up items'), but does not explicitly mention alternatives or when not to use it, so it falls short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create-taskA

Create a new task on a case. Note: targetDate field may be ignored by Filevine API (known issue as of Aug 2025).

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesTask title
case_idYesThe Filevine project ID
due_dateNoDue date in ISO format (YYYY-MM-DD). Note: may be ignored by API.
assigned_toNoFilevine user ID to assign task to
descriptionNoTask description

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses one behavioral issue: the targetDate/due_date field may be ignored by the API. However, this information is also present in the schema parameter description, so the description adds minimal additional context. It does not mention return behavior, error conditions, or permissions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the primary action, and includes a relevant caveat. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 5 parameters and 2 required, with no output schema. The description does not explain what the tool returns, potential errors (e.g., case not found), or any prerequisites. However, the schema fully documents parameters, so completeness is acceptable but not rich.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with per-parameter descriptions, so baseline is 3. The description's note about targetDate being ignored is redundant with the schema's due_date description, and uses a different field name (targetDate vs due_date), which could cause confusion.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (create) and the resource (a task on a case), using a specific verb and object. It distinguishes from sibling tools like create-note (different resource) and list-tasks (different operation).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not explicitly mention alternatives or exclusions. While the context is clear (use when creating a task), there is no guidance on when not to use this vs other tools, such as list-tasks for reading.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

discover-schemaA

Discover the firm's custom data structure: list all project types and their collection sections. Use this to map section selectors for get-collection tool.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the behavioral disclosure burden. It states that the tool lists project types and sections, implying a read-only operation, but does not explicitly confirm read-only semantics, authentication requirements, or any potential side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no fluff: the first states the purpose, the second gives direct usage guidance. Every word earns its place, and key information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple with zero params and no output schema. The description covers both what it returns (list of project types and sections) and how to use the result (mapping selectors for get-collection), making it self-contained for an agent to select and invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so there is nothing to explain about input semantics. The description adds no parameter details, but none are needed; baseline 4 applies for parameter-less tools.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses specific verbs 'Discover' and 'list' with a clear resource ('the firm's custom data structure'), naming exact outputs ('project types and collection sections'). It also differentiates from siblings by referencing the get-collection tool, establishing its unique role.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly identifies when to use it: to map section selectors for get-collection. It does not list exclusions or alternatives, but the clear context is sufficient for a dedicated discovery tool with no obvious competing sibling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get-caseA

Get detailed information about a specific case (project) by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
case_idYesThe Filevine project ID

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavioral traits. It only says 'Get detailed information' without mentioning permissions, authentication requirements, error handling, or what 'detailed' includes. The burden is unmet.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One short, front-loaded sentence with no filler. It efficiently conveys action, resource, and qualifier.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple with one well-documented parameter. However, without an output schema, the phrase 'detailed information' is vague and does not specify what fields or related data are returned, leaving a modest gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already documents the single parameter with the description 'The Filevine project ID'. The tool description repeats 'by ID' without adding any new meaning, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Get'), the resource ('detailed information about a specific case'), and the qualifier ('by ID'). It distinguishes from siblings like list-cases and get-contact.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly implies use when a specific case ID is known and full details are needed. It does not explicitly name alternatives or exclusions, but the context is unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get-collectionA

Get custom collection data (medical records, liens, settlements, etc.) for a case. Use discover-schema first to find available selectors.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
case_idYesThe Filevine project ID
selectorYesThe collection selector (e.g., 'MedicalRecords', 'Liens'). Find selectors via discover-schema tool.

TDQS

A3.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of disclosing behavior. It only says 'Get' and gives examples, without mentioning pagination, permissions, rate limits, or error behavior. This is minimal beyond the basic operation and leaves the agent without important expectations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long, front-loaded with the core action, and provides a helpful instruction without any filler. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the tool's main purpose and prerequisite, but with no output schema it fails to describe the return format, pagination, or limit behavior. This is a clear gap for a tool that fetches data, but the core usage is still adequately conveyed for a relatively simple getter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds meaning beyond the schema by giving example selector values ('MedicalRecords', 'Liens') and explicitly directing users to the discover-schema tool for valid selectors. The case_id parameter is already described in the schema, and the limit parameter has range constraints, so the description compensates for the partial schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with the specific verb 'Get' and identifies the resource as 'custom collection data' with concrete examples (medical records, liens, settlements). This clearly distinguishes it from sibling tools like get-case or list-documents, which operate on different data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives an explicit prerequisite: 'Use discover-schema first to find available selectors.' This tells the agent what to do before invoking the tool. It does not spell out when not to use it, but the focused 'custom collection' language provides a clear usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get-contactA

Get detailed information about a specific contact by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
contact_idYesThe Filevine contact ID

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It says 'detailed information' which implies a read operation, but it doesn't disclose error behavior, authentication requirements, or the exact structure of the response. The gap is moderate for a simple get-by-ID tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, front-loaded with the action and resource, and contains no unnecessary words. It is highly concise and structured effectively.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple (one parameter, no output schema), but the description doesn't specify what 'detailed information' includes or what happens if the contact is not found. It's adequate for a basic get-by-ID tool but lacks some completeness expected without annotations or an output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%: the schema already describes contact_id as 'The Filevine contact ID'. The description just says 'by ID' without adding extra meaning. Baseline 3 is appropriate because the schema fully documents the parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Get') and resource ('specific contact') and scopes it by ID. This distinguishes it from sibling tools like search-contacts (which searches) and list-case-contacts (which lists contacts for a case).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'by ID' clearly implies when to use this tool: when you have a specific contact ID and need detailed information. It doesn't explicitly exclude alternatives like search-contacts, but the context is clear and no alternative tools are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list-case-contactsB

List all contacts assigned to a specific case.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
case_idYesThe Filevine project ID

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It implies a read operation ('List'), but does not disclose the limit parameter's effect (default 50) or pagination behavior. The word 'all' is potentially misleading given the limit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, concise sentence that is front-loaded with the action and resource. No filler or repetitive content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has two parameters, no output schema, and no annotations. The description omits important context like pagination, limit behavior, and any error conditions. As a result, the agent cannot fully predict the tool's behavior from the description alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 50%; the limit parameter lacks a description. The description does not compensate by explaining limit or adding meaning to case_id beyond 'case'. It also conflicts with the limit by saying 'all'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('List') with a clear resource ('contacts') and scope ('assigned to a specific case'). It distinguishes itself from sibling tools like search-contacts or get-contact by indicating case-based listing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when you have a case_id and need its contacts, but it does not explicitly discuss when to choose this over alternatives (e.g., search-contacts). There are no exclusions or alternative tool references.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list-casesA

List cases (projects) from Filevine, optionally filtered by status or search term.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number for pagination
limitNoNumber of cases to return
searchNoSearch case name or number
statusNoFilter by case status. Defaults to "active".active

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses the listing and filtering behavior but omits crucial behavioral details like pagination (though page/limit params exist), default status, response shape, or whether authentication is required. The description adds some value but leaves significant gaps for a read tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that states the resource, source, and optional filters. Every word earns its place; there is no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is a simple list operation with full schema coverage and no output schema. The description sufficiently captures the core purpose and filtering, but since there is no output schema, it does not clarify the return structure or pagination behavior. Given the low complexity, this is a minor but present gap, so 3 is appropriate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds a plain-language summary of filters (status or search term) that aligns with the schema but does not clarify parameter meanings beyond what the schema already provides. No added syntax or example values are given.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb (List) and resource (cases from Filevine), which clearly distinguishes it from siblings like list-notes (different resource) and get-case (single case). It also notes optional filters, clarifying the scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly states that it lists cases and can be filtered by status or search term, implying when to use it. However, it does not explicitly call out alternatives (e.g., 'for a single case, use get-case') or mention exclusions, so guidance is implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list-documentsB

List all documents for a specific case. Returns metadata, URLs, and file info — not the binary content.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
limitNo
case_idYesThe Filevine project ID

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It usefully discloses that the tool returns metadata/URLs/file info and not binary content, which is valuable. However, it does not state side effects (though 'list' implies read-only), pagination behavior, or any rate/auth constraints, leaving moderate gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences with no filler. It front-loads the core purpose and adds a clarifying exclusion, earning its place without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and only partial parameter documentation, the description leaves significant gaps: it does not explain page/limit interaction, response shape, or how 'all documents' relates to pagination. It provides a minimal baseline but is incomplete for a tool with three parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 33% (case_id only), and the description does not compensate for page/limit parameters. It implicitly ties case_id to the case context, but omits explanation of pagination controls, leaving undocumented params for a low-coverage schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action ('List all documents') and the target resource ('for a specific case'), with the verb+resource structure distinguishing it from siblings like list-notes. It also clarifies the output scope (metadata, URLs, file info) and explicitly excludes binary content, leaving no doubt about the tool's purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It does not mention when not to use it, prerequisites, or any explicit decision criteria, relying solely on the inferred context that documents are needed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list-notesB

List all notes for a specific case.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
limitNo
case_idYesThe Filevine project ID

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden of disclosing behavior. Saying 'List all notes' is misleading because the schema includes pagination parameters (page, limit), implying results are paginated rather than 'all' at once. There is no mention of ordering, error conditions, or the shape of the response.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no unnecessary words. It states the essential purpose succinctly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only list tool with three parameters and no output schema, the description gives the core context but leaves gaps. It does not disclose that results are paginated, how to interpret the response, or any caveats. Given the lack of annotations and output schema, additional clarity would be beneficial.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 33% (case_id). The description adds no explanatory value for page and limit, and while case_id is described in the schema as a Filevine project ID, the description's 'specific case' is vaguer. Parameter names are self-explanatory, but the description does not help with the missing 67% of parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (List), the resource (notes), and the scope (a specific case). This distinguishes it from sibling tools like create-note and list-documents/tasks, making the tool's purpose immediately obvious.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. It does not mention that create-note should be used for adding notes or that list-documents/list-tasks are for other entity types. The context is implied by the name but not explicitly stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list-tasksB

List all tasks for a specific case, optionally filtered by status.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
limitNo
statusNoFilter by task status. Defaults to "open".open
case_idYesThe Filevine project ID

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description carries the full burden of behavioral disclosure. It implies a read-only operation via 'List', but it does not mention the pagination parameters (page, limit) that control the result set, nor does it clarify that 'all tasks' may be limited. This could mislead an agent about the completeness of the returned list.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no redundant words. It delivers the core message efficiently, making it highly concise and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has four parameters including pagination controls, and no output schema. The description omits any mention of pagination or response format, leaving the agent without key usage information. Additionally, it does not clarify how this listing tool relates to create-task or other task-oriented tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description mentions the status filter, aligning with the status parameter, but it adds no meaning to page, limit, or case_id beyond the schema. With only 50% schema description coverage, the pagination parameters (page, limit) remain undocumented in both schema and description, leaving a significant gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('List') and resource ('tasks') with a clear scope ('for a specific case') and an optional filter ('by status'). This clearly distinguishes it from sibling list tools like list-notes and list-documents.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when tasks for a known case are needed, but it does not explicitly state when to use this tool over alternatives such as create-task or list-cases. No exclusions or alternative references are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

logoutA

Remove the stored Filevine tokens from disk.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It states the core behavior (removing tokens from disk) but does not disclose additional behavioral traits such as whether the operation is idempotent, reversible, or what happens if no tokens are stored. The statement is honest but minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that is immediately informative. No filler or unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (no parameters, no output schema), the description adequately explains the tool's purpose and effect. It might have mentioned return behavior or side effects, but for a logout operation, removing tokens is the key action and is clearly stated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and the schema is empty, so the baseline is 4. The description does not need to add parameter details, and it correctly focuses on the operation's effect.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Remove') and a specific resource ('stored Filevine tokens from disk'). It clearly distinguishes this tool from sibling tools like authenticate (which creates tokens) and auth-status (which checks token status).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use this tool: when you want to log out by removing stored tokens. The context of sibling tools (authenticate, auth-status) helps clarify its role, though it doesn't explicitly state alternatives or situations to avoid.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search-contactsA

Search for contacts across all cases by name or email.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
limitNo
searchYesName, email, or phone to search for

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses the search scope and basic input types, but without annotations, the description carries full burden. It does not mention pagination behavior, matching semantics, auth requirements, or that the schema also allows phone searches.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence with no filler or redundant qualifiers, front-loading the core purpose. It is appropriately concise for a simple search tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Describes the core action and scope adequately for a simple search, but lacks mention of phone as a search criterion and pagination controls. There is no output schema or annotations to cover these gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 33% (only 'search' has a description), and the description adds little: it omits the phone criterion already listed in the schema and provides no guidance for 'page' or 'limit'. The description needed to compensate for low schema coverage but does not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states a specific action ('Search') on a specific resource ('contacts') with explicit scope ('across all cases') and criteria ('by name or email'). This distinguishes it from siblings like list-case-contacts, which are likely specific to a single case.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Across all cases' implies this is the global contact-search tool rather than a case-scoped listing, giving some context for selection. However, it does not explicitly state when to avoid it or point to an alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 15 tool updatesv1.0.1
    • First observedauth-status
    • First observedauthenticate
    • First observedcreate-note
    • First observedcreate-task
    • First observeddiscover-schema
    • First observedget-case
    • First observedget-collection
    • First observedget-contact
    • First observedlist-case-contacts
    • First observedlist-cases
    • First observedlist-documents
    • First observedlist-notes
    • First observedlist-tasks
    • First observedlogout
    • First observedsearch-contacts

TDQS

A3.8/5.0
Disambiguation5/5

Each tool targets a distinct resource and action (cases, notes, contacts, documents, tasks, collections, auth). The few overlapping areas like list-case-contacts and search-contacts are clearly differentiated by scope, and descriptions leave no ambiguity.

Naming Consistency4/5

Most tools follow a verb_noun pattern with hyphens (list-*, get-*, create-*), which is consistent and predictable. However, authenticate, logout, and auth-status deviate from this pattern, breaking the uniformity slightly.

Tool Count5/5

With 15 tools, the server is well-scoped for its purpose. Each tool addresses a distinct need, and the count is within the ideal range, not feeling excessive or sparse.

Completeness3/5

The tool surface covers core read workflows for cases, contacts, documents, notes, tasks, and custom data, plus note and task creation. However, there are notable gaps: no update/delete for cases, notes, or tasks, no document content retrieval, and no contact creation/update. These omissions create dead ends for workflows requiring full CRUD.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server for Clio Manage legal practice management software that enables Claude and other MCP clients to read and write Clio data including contacts, matters, and activities directly from chat.
    8
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    MCP server that connects Clio Manage to Claude via OAuth, enabling law firm management tasks like matter lookup, time tracking, billing, calendar, and document retrieval through natural language.
    41
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    A Model Context Protocol server that enables Claude (or any MCP client) to read and write Clio Manage data—contacts, matters, activities—directly from chat, with flat-fee billing support in one call.
    -

Latest Blog Posts

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/oktopeak/filevine-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server