Skip to main content
Glama
mambalabsdev

Expert Witness Directory MCP Server

Expert Witness Directory MCP Server

MCP Registry npm version npm downloads

MCP server for the Mamba Labs Expert Witness Directory actor on Apify.

Expert witness and medico-legal directory records for the United States and Australia, one deduplicated record per person, with specialties mapped to one taxonomy.

Install

npx -y @mambalabsdev/mcp-expert-witness-directory

Claude Desktop

{
  "mcpServers": {
    "mamba-expert-witness-directory": {
      "command": "npx",
      "args": ["-y", "@mambalabsdev/mcp-expert-witness-directory"],
      "env": { "APIFY_TOKEN": "your-apify-token" }
    }
  }
}

Get an Apify token at console.apify.com/account/integrations.

Related MCP server: Fonteum — Healthcare Provider Data

Coverage

  • The actor returns records for the United States and Australia only.

  • It reads 18 public sources: 7 in the US and 11 in Australia, counting ABIME once in the US. ABIME lists experts in several countries; the actor keeps only its US and Australian records.

  • UK and Canadian records are not offered. The country input accepts US and AU only, because the public actor refuses any other country and stops the run with an error.

  • The same person on several directories comes back as one record listing every source.

  • Every source's own specialty tags map to one taxonomy, so "Forensic Psychiatry" and "Psychiatrist, general adult" filter together.

  • Australian panel sources print the panel's contact details, not the doctor's, so those records carry a name, specialty, and state but no email.

Emails

The actor never guesses an email. published_email is empty unless a source page printed an address, and email_source names the page.

Source terms

Several sources publish terms that restrict automated collection, reproduction, commercial use, or soliciting the people they list. The actor README gives the terms posture of each source as it was published when the actor was built. The actor reports the terms; it does not decide for you. Make your own call for your use case, and take legal advice where it matters.

Tool

find_expert_witnesses

Find expert witnesses and medico-legal assessors in the United States and Australia, filtered by specialty, region, country, and source.

Input

Type

Required

Notes

specialty

array

no

Taxonomy codes, for example medicine.psychiatry or engineering.structural. A parent code also matches its children: medicine.psychiatry includes medicine.psychiatry.forensic. Empty returns every specialty. 55 codes.

region

array

no

State or region as the source prints it, for example Queensland, California, New South Wales. Case and accents are ignored. Empty returns every region.

country

array

no

US, AU, or both. Empty returns both. No other value is accepted: the public actor refuses a UK or Canadian request and stops the run.

sources

array

no

Directories to read. Empty reads the 18 implemented sources: abime, lacourt-panels, sfbar, cccba, isba, lsba, aaimco, medilaw, lexmedicus, aushub, medicolegal-specialists, index-medicolegal, themis, integrityml, vmls, lime, mag-directory, workcover-wa. The other 17 values the actor offers are planned or not covered; the actor skips them and names them in its RUN_SUMMARY record.

mode

string

no

list (default) returns every matching expert. feed returns only experts that are new, changed, or returned since the last run on the same persistent store, plus removed rows. Unchanged experts are not emitted and cost nothing.

verifyNppes

boolean

no

Off by default. Checks each US record against the free NPPES monthly file and adds npi and nppes_status. NPPES carries no email.

maxItems

integer

no

Stop after this many output rows. Default 100. 0 means no cap. A capped run never marks listings as removed.

persistStoreName

string

no

Named key-value store in your Apify account that keeps expert records between runs. Default expert-witness-directory-store. Reuse the same name for feed mode.

Nothing is required. A call with no inputs reads all 18 sources and returns up to 100 experts.

A run with maxItems: 0 reads every listing on every source at one request per 2 seconds per host. It has not been timed, and it may pass the 3,600 second run timeout this wrapper sets. Set maxItems for an interactive call.

Pricing

Expert Witness Directory is pay per event on Apify. Four events are billed.

Event

Charged for

Price

Fires when

expert-record

Expert record

$0.004

Once per deduplicated expert row written to the dataset. In feed mode, once per new, changed, returned, or removed row; unchanged experts are not emitted and cost nothing.

email-found

Email returned

$0.01

Once per row that carries a published email a source page printed. Removed rows never charge it.

npi-verified

NPPES check

$0.002

Once per US row checked against the NPPES monthly file. Only when verifyNppes is on.

apify-actor-start

Actor start

$0.00005

Charged by Apify when the run starts, one event per GB of memory. One event at the 1024 MB default.

Actor

Actor ID LIpwlgfE3LaQBaXd4. The wrapper calls the actor by that immutable ID rather than by its Store slug, so a Store rename never breaks it.

Built by Mamba Labs.

Available Tools

1 tool
find_expert_witnessesFind Expert Witnesses in the US and AustraliaA
Read-only

Find expert witnesses and medico-legal assessors in the United States and Australia. Reads 18 public directories (7 in the US, 11 in Australia, ABIME counted once), merges the same person across directories into one record, and maps every source's specialty tags to one taxonomy. Each row carries name, specialty, state or region, country, firm, practice site, phone, listing URL, and the sources that list the person. country accepts US and AU only: the public actor covers the United States and Australia and refuses a UK or Canadian request, so the run stops with an error on any other value. published_email is filled only when a source page printed an address; the actor never guesses an email. Several sources publish terms that restrict automated collection, reproduction, commercial use, or solicitation; the actor README lists each source's terms posture, and the use decision is yours. mode list returns every matching expert; mode feed returns only experts new, changed, returned, or removed since the last run on the same persistent store. Charges $0.004 per expert record, $0.01 per row with a published email, $0.002 per US row checked against NPPES when verifyNppes is on, and $0.00005 per actor start per GB of memory (one event at the 1024 MB default). Requires an APIFY_TOKEN and consumes Apify credits. Read only against the directories; it writes only to the named key-value store in your own Apify account.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNolist returns every matching expert. feed returns only experts that are new, changed, or returned since the last run on the same persistent store, plus removed rows; unchanged experts are not emitted and cost nothing. A listing counts as removed after 2 complete, unfiltered runs miss it. Default: list.
regionNoState or region as the source prints it, for example Queensland, California, New South Wales. Case and accents are ignored. Empty returns every region.
countryNoUS, AU, or both. Empty returns both. United States and Australia only: the public actor refuses a UK or Canadian request and stops the run with an error, so no other value is accepted.
sourcesNoDirectories to read. Empty reads every implemented source. Sources that are not implemented yet, or that the actor does not cover, are skipped and named in the RUN_SUMMARY record. The 18 implemented sources are abime, lacourt-panels, sfbar, cccba, isba, lsba, aaimco, medilaw, lexmedicus, aushub, medicolegal-specialists, index-medicolegal, themis, integrityml, vmls, lime, mag-directory, workcover-wa.
maxItemsNoStop after this many output rows (one row per deduplicated expert). 0 means no cap. A capped run never marks listings as removed. Default: 100.
specialtyNoTaxonomy codes. A parent code also matches its children: medicine.psychiatry includes medicine.psychiatry.forensic. Empty returns every specialty.
verifyNppesNoCheck each US record against the free NPPES monthly file (name, state, and specialty). Adds npi and nppes_status. NPPES carries no email. Charged per checked record. Default: false.
persistStoreNameNoNamed key-value store in your account that keeps expert records between runs. Reuse the same name for feed mode. Default: expert-witness-directory-store.

TDQS

A4.5/5.0
Behavior5/5

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

Adds substantial behavior beyond the annotations: APIFY_TOKEN requirement, Apify credit consumption, per-record and per-email pricing, per-run NPPES verification charges, the refusal on UK/Canadian input that halts the run, the guarantee that published_email is never guessed, and the source terms-of-service caveat. Annotations already declare readOnly/openWorld, but the description carries rich operational context on top.

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

Conciseness3/5

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

Front-loaded with the core purpose, which is good, but the body is a dense block mixing pricing, terms posture, auth, and parameter recap; several statements (country refusal, mode definitions) duplicate the schema. Every sentence is informative but the size is heavier than needed for the selection decision.

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?

With no output schema, the description fully carries the burden: it enumerates the returned fields (name, specialty, state/region, country, firm, practice site, phone, listing URL, sources), covers the error behavior, auth, and cost model. An agent has everything required to call and interpret it 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?

Schema description coverage is 100%, so the baseline is 3. The description goes beyond the schema by explaining why country is limited to US/AU, how published_email is populated, and the semantics and cost implications of mode and verifyNppes. It adds meaning but also repeats several schema-documented points.

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?

States a concrete verb and resource ('Find expert witnesses and medico-legal assessors') and constrains the geography to the US and Australia immediately. It also signals the aggregation/dedup/taxonomy behavior, so an agent knows exactly what kind of search this is. No siblings exist to distinguish from, but the purpose is unambiguous.

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?

Gives clear context for when each mode applies ('mode list returns every matching expert; mode feed returns only experts new, changed, returned, or removed since the last run') and warns that country is US/AU only. It stops short of explicit when-not-to-use or alternative-tool routing (none exist), so it is clear context without exclusions.

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.

  1. 1 tool updatev1.0.0
    • First observedfind_expert_witnesses

TDQS

A4.4/5.0

Scored across 1 tool

Disambiguation5/5

Only one tool exists, so there is no possibility of selecting the wrong tool or confusing overlapping purposes. The single tool's scope is clearly defined as finding expert witnesses.

Naming Consistency5/5

With a single tool named find_expert_witnesses, naming is inherently consistent and follows a clear snake_case verb_noun pattern. No mixed conventions are present.

Tool Count3/5

One tool is on the thin side according to the rubric's 1-2 tool borderline range, though it suits the narrow read-only search purpose. The tool consolidates search, list, and feed modes without fragmentation.

Completeness4/5

The tool covers the core search lifecycle: querying 18 directories, merging records, mapping specialties, returning contact data, and supporting list/feed change modes. Minor gaps exist for separate source metadata or single-expert retrieval, but agents can work around them via returned listing URLs.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    B
    maintenance
    Source-provenanced US federal healthcare provider data over MCP. Resolve any NPI or CCN across NPPES, OIG LEIE, SAM.gov, state Medicaid exclusions, CMS PECOS, Care Compare, and Open Payments — every field carries a 14-field provenance contract, and an "excluded or compromised anywhere" check runs on every lookup.
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables LLM clients to search and retrieve U.S. healthcare provider records from the NPPES NPI Registry, including provider lookup, specialty search, checksum validation, and referral-eligibility assessment, all without an API key.
    MIT