AI Legal Watch MCP
AI Legal Watch MCP
MCP server for append-only maintenance of an AI legal developments tracker stored as CSV.
It validates candidate rows, checks for duplicates, preserves historical CSV formatting, and helps rank possible article candidates without directly browsing or judging legal authority.
What it does
Reads a tracker CSV and exposes filtered list/digest views
Dry-runs candidate additions before writing anything
Appends exactly one approved row when the tracker fingerprint still matches
Uses a lock to prevent duplicate concurrent appends
Suggests article candidates with transparent scoring
What it does not do
It does not browse the web or verify the legal source for you
It does not rewrite existing tracker history
It does not silently merge or normalize old rows beyond tolerated legacy repairs
It does not require a content archive, though it can fail open when one is configured
Requirements
Node.js
20or newerA local MCP client that can launch a stdio server
Installation
cd tools/ai-legal-watch-mcp
npm install
npm test
npm run smokeMCP client setup
Example stdio configuration:
{
"mcpServers": {
"ai-legal-watch": {
"command": "node",
"args": ["/absolute/path/to/ai-legal-watch-mcp/server.mjs"],
"env": {
"AI_LEGAL_WATCH_WORKSPACE": "/absolute/path/to/workspace"
}
}
}
}The tracker defaults to ai-legal-watch-tracker.csv in the chosen workspace. Override it with AI_LEGAL_WATCH_TRACKER if needed.
If you want candidate suggestion to exclude already-covered rows using a local content archive, set AI_LEGAL_WATCH_ARCHIVE_ROOT or CLEARON_CONTENT_ARCHIVE_ROOT.
Safety model
propose_tracker_updatenever writesapply_tracker_updateappends only one encoded CSV row and requires the exact SHA-256 fingerprint returned by the proposalThe tracker lock, fingerprint check, and duplicate check are all repeated while the lock is held
Existing rows are not reserialized, preserving tolerated historical formatting quirks
New rows must use legal classifications, not publication workflow labels
Tools
list_watch_itemsfind_duplicate_developmentpropose_tracker_updateapply_tracker_updategenerate_watch_digestsuggest_article_candidates
Example workflow
Call
find_duplicate_developmentwith the topic, development date, and official source URL.Call
propose_tracker_updatewith the full candidate row.Verify the underlying primary source and legal classification outside this MCP.
Call
apply_tracker_updatewith the exacttracker_sha256and unchangedcandidate.If the fingerprint is stale, generate a fresh proposal instead of retrying an old payload.
Development
npm test
npm run smoke
npm run syntaxLatest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/kwgoodwin/ai-legal-watch-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server