PSLRA Case Tracker
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PSLRA_DB | No | SQLite file. Default `~/.pslra-tracker/tracker.db`. | |
| PSLRA_JEV | No | Set to `0` to keep the key but force regex only. | |
| PSLRA_API_TOKEN | No | Optional static bearer token for scripts, HTTP mode only. | |
| PSLRA_PUBLIC_URL | No | Same as `--public-url`. The public https address Claude will use. | |
| PSLRA_USER_AGENT | No | How the tracker identifies itself to sources. | |
| TYPESAFE_API_KEY | No | Optional. Turns on Jev classification. | |
| COURTLISTENER_TOKEN | No | Optional. Lifts CourtListener's anonymous rate limit. | |
| PSLRA_AUTH_PASSWORD | No | Required with `--public-url`. The sign-in password for the remote connector. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| refresh_casesA | Run one pass: read the newswires, set aside what is not a filed case, extract ticker / class period / deadline, and merge each announcement into its lawsuit. sources: any of prnewswire, businesswire, globenewswire (default: all three). days: look-back window. max_fetch: cap on article bodies read per source this run; anything over the cap is deferred to the next run, not dropped. include_courts: also sweep CourtListener for securities dockets (nature of suit 850) and link them to cases. A source that cannot be reached is reported under its name with an error and retried next time. |
| list_casesA | List tracked securities class actions, soonest lead plaintiff deadline first. status: open (deadline today or later), expired, no_deadline_found, or all. due_within_days: only cases whose deadline falls within this many days. ticker: exact stock ticker. query: substring of the company name. first_seen_since: ISO date; only cases first seen on or after it (what is new). |
| get_caseA | Full detail for one case by id, or every case for a ticker: the deadline and how many announcements voted for each date, the class period, every firm that announced it, the linked court docket when one was found, and every source announcement with how it was matched. |
| search_announcementsB | Search every announcement the tracker has read, including those set aside, with the decision made about each (why it was set aside, or which case it joined and by which rule). kind: filing, reminder, investigation, settlement or other. source: e.g. prnewswire. |
| list_court_docketsA | Federal dockets filed under nature-of-suit code 850 (Securities/Commodities), from CourtListener. These appear the day a case is filed, typically weeks before any press release. A filing code is not a classification: code 850 also carries derivative suits, SEC enforcement
and individual investor suits. |
| source_statusA | Whether the Jev classifier is active, and every source with whether it is switched on, when it last succeeded, its last error, and the newest announcement reached, plus record counts. A source whose newest announcement has not moved for days while others are current has quietly stalled. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 6 tools
Most tools have clearly distinct purposes: ingestion, case lookup, case listing, announcement search, docket listing, and source health. The main ambiguity is between get_case and list_cases, since get_case with a ticker returns every case for that ticker while list_cases also lists cases with ticker/filter options.
Five of six tools follow a clear verb_noun snake_case pattern: refresh_cases, get_case, list_cases, search_announcements, list_court_dockets. The only deviation is source_status, which is a noun phrase rather than a verb-led action, but the overall convention remains readable and consistent.
Six tools is well-scoped for a focused PSLRA case-tracking server. Each tool covers a distinct part of the workflow: ingestion, case detail, listing, announcement search, docket discovery, and source health.
The surface covers ingestion, lookup, listing, announcement search, court docket discovery, and source diagnostics, which is strong for the domain. Minor gaps remain, such as no direct tool to manually create or update a case, but the automated refresh and query tools cover the core lifecycle.