Honest ElfHonest Elf

For AI Agents · Model Context Protocol

Court e-filing for AI agents.

Honest Elf is a Texas Electronic Filing Service Provider (EFSP) with a remote MCP server. Any MCP-compatible agent — Claude, Claude Code, or your own — can search Texas courts, look up cases, draft filings, quote court fees, and submit documents for clerk review, with a human approving every dollar spent.

MCP Endpoint

https://mcp.honestelf.com/mcp

Streamable HTTP transport · OAuth 2.1 with dynamic client registration · single efile scope

What Agents Can Do

39 tools covering the full filing lifecycle.

The groups below show the core flow. The full documentation covers every tool, authentication, and data handling.

Courts & filing codes

Search all Texas e-filing courts, then walk the court's own configuration: case categories, case types, filing codes, party types, and fee-bearing optional services.

search_courtsget_courtlist_case_categorieslist_case_typeslist_filing_codesget_filing_code_detailslist_party_types

Live case lookup

Query the court record directly — find an existing case by case number or party name and pull its classification, parties, and service contacts.

search_casesget_caseget_case_service_contacts

Drafting & documents

Assemble a complete filing in one call — case, parties, filings, service recipients — then attach PDFs via a secure upload link so file bytes never pass through the model.

create_draftget_draftupdate_draftcreate_document_uploadupload_document

Prepare, submit & track

Server-side validation, a real fee quote from the court system, and submission bound to a short-lived confirmation token. Then poll clerk review status and e-service notifications.

prepare_filingsubmit_filingcancel_filingget_filing_statuslist_filingslist_service_notifications

Built for Real Money and Real Courts

Agents act. Humans approve.

Nothing is charged without approval

prepare_filing returns the itemized fee quote (court fees, optional services, e-service, provider fee) and a confirmation token that expires in 15 minutes. submit_filing requires that token — the intended flow is that the agent shows the user the total and gets explicit approval first.

No accidental double filing

Submissions carry an idempotency key, and the server re-verifies the draft contents and the fee total at submit time. If anything moved since the quote, the submission is refused and must be re-prepared.

Credentials stay with the user

Agents authenticate with OAuth 2.1 (PKCE, rotating refresh tokens). The user signs in with their e-filing credentials on Honest Elf's consent page — the password is never shared with the agent or stored.

Everything is auditable

Every tool call is logged with the acting user, firm, and OAuth client. Drafts created by agents appear in the Honest Elf web app, where a human can review, edit, or cancel them.

A Typical Filing

From question to court in one conversation

  1. 1Find the court and its filing codes (search_courts, list_filing_codes)
  2. 2For an existing case, look it up in the court record (search_cases)
  3. 3Create a draft with parties and filings (create_draft)
  4. 4Attach PDFs through a secure upload link (create_document_upload)
  5. 5Validate and get the real fee quote (prepare_filing)
  6. 6Show the user the fees, get approval, and submit (submit_filing)
  7. 7Track clerk review until accepted or rejected (get_filing_status)

Connect a Client

Two commands to get started

Claude Code:

claude mcp add --transport http honest-elf \
  https://mcp.honestelf.com/mcp

Claude.ai / Claude Desktop: add a custom connector pointing at https://mcp.honestelf.com/mcp.

On first use, the client discovers the OAuth server, registers itself, and opens a browser window where you sign in with your Honest Elf e-filing credentials to approve access. Tokens can be revoked at any time, and expired court sessions re-link without re-authorizing the agent.

Machine-readable overview for crawlers and agents: /llms.txt

Designed for Agent Loops

Structured errors an agent can actually act on.

Every tool error is a JSON object with a stable code and a recovery path: validation_failed lists every problem with a draft, fee_changed means re-quote and re-approve, relink_required includes the URL where the user refreshes their court session. Filings are reviewed asynchronously by court clerks, so status tools are safe to poll.