Skip to main content

PrivacyOps

PrivacyOps is an MCP server for consumers who are tracking credit-bureau disputes. It keeps a record of each dispute on your own computer, and it writes dispute letters from fixed templates that you fill in by hand.

Not legal advice. PrivacyOps is a tracking and drafting aid. It does not know your facts or the law in your state. The letter templates have not been reviewed by a lawyer. For legal questions, ask a lawyer or a consumer-protection agency.

It is a bundle: one server made of modules. You switch on the modules you use. New modules arrive switched off, so an update never changes what your assistant can do until you choose to.

Module What it does Status
disputes Track disputes with consumer reporting agencies (Equifax, Experian, TransUnion) and with furnishers (the companies that report to them): status, sent date, the 30-day reinvestigation due date, and a history of changes 0.1
letters Dispute letters from two fixed templates, saved as text files on your computer 0.1

Planned, not built: data-broker opt-outs and credit-freeze tools. These are ideas, not commitments.

Audience: consumers who want to keep their own record of disputes and write clear letters. PrivacyOps is not for lawyers, credit repair businesses, or anyone handling other people's identity information.

What stays on your computer

  • Dispute records are kept in one JSON file in your data folder. Default: ~/.local/share/privacyops/privacyops.json. Set PRIVACYOPS_DATA_DIR to choose another folder.
  • Letters are saved as Markdown text files in letters/ inside that folder.
  • Nothing is sent to Seaynic Labs or to any other service. PrivacyOps makes no network calls.
  • The files are created readable only by you (mode 0600), but they are not encrypted. Anyone with access to your account can read them. Keep the folder out of shared or synced folders you do not control.
  • Your AI assistant can see what you type into the chat, and so can the company that runs it. PrivacyOps cannot change that.

PrivacyOps never asks for a Social Security number. If a bureau asks for identifying numbers, you write them in by hand on the printed letter.

Install

PrivacyOps needs Python 3.11 or newer. With uv you do not install anything ahead of time:

uvx privacyops-mcp --version

Or with pip:

pip install privacyops-mcp

Uninstalling with pip uninstall privacyops-mcp removes the program only. Your records and letters stay in the data folder. Delete that folder yourself if you want them gone.

Settings

PrivacyOps starts without any settings. The defaults are safe.

Variable Module What it does
PRIVACYOPS_DATA_DIR all Folder for your records and letters. Default ~/.local/share/privacyops
PRIVACYOPS_DISPUTES_ALLOW_DELETE disputes false by default: you approve each delete. true lets the assistant delete a dispute record without asking.
PRIVACYOPS_<MODULE>_ENABLED any false turns a module off, e.g. PRIVACYOPS_LETTERS_ENABLED=false

Config file (optional). PrivacyOps also reads ~/.config/privacyops/config.toml, or the file named by PRIVACYOPS_CONFIG. Environment variables win over the file.

data_dir = "/Users/you/Documents/privacyops"

[disputes]
allow_delete = false

[letters]
enabled = true

Add it to your MCP client

Most clients use the same JSON shape. Put it where your client keeps MCP servers:

{
  "mcpServers": {
    "privacyops": {
      "command": "uvx",
      "args": ["privacyops-mcp"],
      "env": {
        "PRIVACYOPS_DATA_DIR": "/Users/you/Documents/privacyops"
      }
    }
  }
}
Client Where the config goes
Claude Desktop claude_desktop_config.json (Settings → Developer → Edit Config)
Claude Code claude mcp add privacyops -- uvx privacyops-mcp, or a project .mcp.json
Cursor ~/.cursor/mcp.json, or .cursor/mcp.json in a project
VS Code .vscode/mcp.json, using "servers" instead of "mcpServers"
Sonique, Hermes, OpenClaw, others Any client that launches a stdio MCP server: command uvx, args ["privacyops-mcp"], plus the env values

Over HTTP. For clients that connect to a URL instead of launching a process:

privacyops-mcp --transport http --port 8765

It serves streamable HTTP at http://127.0.0.1:8765/mcp and listens only on your own machine by default. Put authentication in front of it before exposing it anywhere else.

Tools

Tool What it returns
privacyops_modules Which modules are on, what each tool does, where your data is, and the disclaimer. Call this first.
disputes_list Dispute summaries, filtered by status or party type, paged with offset
disputes_get One dispute with its details, due date, letters written, and history
disputes_create Starts tracking a dispute
disputes_update Changes status, sets the sent date, or adds a note. Every change goes into the history.
disputes_delete Deletes a dispute record. Preview first; you approve it. Letter files are not deleted.
letters_templates The templates, the agencies with checked contact details, and the disclaimer
letters_generate Writes a letter to a text file. Attaches it to a dispute if you give its id.

Every tool returns structured data with a published schema. Errors read privacyops.<module>.<code>: <message> Fix: <hint>.

Letter templates and sources

Both templates are fixed text. Nothing is generated by a model. Each citation was checked against the official statute text on 2026-10-27.

Template Used for Cites (15 U.S.C.) Source
cra_dispute Asking a consumer reporting agency to reinvestigate an item 1681i(a)(1)(A), (a)(5)(A), (a)(6)(A), (a)(7) https://www.law.cornell.edu/uscode/text/15/1681i
furnisher_dispute Disputing directly with the company that reported the item 1681s-2(a)(8), (a)(8)(D), (a)(8)(E) https://www.law.cornell.edu/uscode/text/15/1681s-2

Contact details are included only where the agency's own site was checked on 2026-10-27:

Agency Mailing address in letters Online disputes Checked
Equifax Not published on the official page: fill in by hand https://www.equifax.com/personal/credit-report-services/credit-dispute/ 2026-10-27
Experian Experian, Dispute by Mail, P.O. Box 4500, Allen, TX 75013 https://www.experian.com/disputes/main.html (sign-in required) 2026-10-27
TransUnion Not verified (the official page returned an error when checked): fill in by hand Not verified: fill in by hand not checked

Check any address against the agency's own website before you mail a letter. Agencies change their addresses.

Safety

  • PrivacyOps makes no network calls and sends nothing anywhere.
  • Deleting a dispute record asks you first, through your MCP client's approval prompt. The assistant cannot approve on your behalf. Some clients cannot show approval prompts. In those, deletes are refused unless you set PRIVACYOPS_DISPUTES_ALLOW_DELETE=true.
  • Writes never delete other records. A failed save leaves the previous file unchanged, and an unreadable file is never overwritten.
  • The disclaimer appears in the server's instructions, in privacyops_modules, and in every letter's footer.

Develop

uv venv -p 3.11 && uv pip install -e '.[dev]'
.venv/bin/pytest

The tests use temporary data folders and make no network calls.

License

MIT. Published by Seaynic Labs.

Metadata

Release files for privacyops-mcp 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for privacyops-mcp 0.1.0
File Size Uploaded Provenance
privacyops_mcp-0.1.0.tar.gz 23.2 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for privacyops-mcp 0.1.0
File Interpreter ABI Platform
privacyops_mcp-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 45.2 kB

Release files / privacyops_mcp-0.1.0.tar.gz

Download URL privacyops_mcp-0.1.0.tar.gz
Size 23.2 kB
Tags Source
SHA-256 checksum
How to use checksums
49a9fe7d5722cf060f2539a510c60cf115910d8f2cb3172e103ad97182268f7a
BLAKE2b-256 checksum
How to use checksums
8804c127e5803d7205057757b3cccaeeeb726ac0b85ce6ddaa8690555277338f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.8 {"installer":{"name":"uv","version":"0.10.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / privacyops_mcp-0.1.0-py3-none-any.whl

Download URL privacyops_mcp-0.1.0-py3-none-any.whl
Size 22.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
85b584f3b6672ac445ac4f811d27cd1b6f3177a982c5967f6e472b2dd1cb48eb
BLAKE2b-256 checksum
How to use checksums
119b55dcfaf9d5a0247260bcdb4123f03d040e36eb1db11256f16168fca889ef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.8 {"installer":{"name":"uv","version":"0.10.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Security for privacyops-mcp 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page