Skip to main content

octowatch-mcp

PyPI Python CI MCP License: MIT

Install in Cursor Install in VS Code Install in VS Code Insiders

Read-only MCP server for OctoWatch DLP Cloud — ask Cursor, Claude, or VS Code about risks, idle time, productivity, and monitoring in plain language.

Python MCP SDK v2 (MCPServer). Built for SecOps and managers — open-source companion to the OctoWatch console.

Contents: Status · Prerequisites · Example questions · Security · Limitations · Quick start · Your account · Tools · Configuration · Documentation · Contributing

Status

Alpha (v0.5.1). APIs and tool shapes may change; pin a PyPI version in production configs.

Tool failures return MCP is_error (ToolError). All tools advertise read_only_hint.

Prerequisites

  • Python 3.10+
  • An MCP-capable host (Cursor, Claude Desktop, VS Code, …)
  • Network access to your Cloud API host (default https://cloud.octowatchdlp.com)

Example questions

  • “Which Risks in the last day?”
  • “Who was idle the longest yesterday?”
  • “Productivity summary for Accounting”
  • “Show Monitoring keystrokes for Emily”
  • “Find keyword invoice across monitoring last week”
  • “List users and groups”

Short scenarios

Goal Ask something like…
DLP / policy hits “Summarize risks for today by user and rule”
Idle time (not formal alerts) “Who was idle more than 2 hours yesterday?”
Top apps/sites “Top applications for group Accounting last 7 days”
Keyword hunt “Search monitoring for confidential last 30 days”
Directory “List users and groups, then show info for AliasID 4”

Security & privacy

Defaults use the public demo account.
Do not put production passwords in MCP config or git. Use env vars and a least-privilege console operator.
No writes, no screenshot/video binary downloads.

Monitoring responses can contain sensitive employee data (activity, keystrokes snippets, mail metadata). Treat tool output as confidential. Full policy: SECURITY.md.

Limitations

  • Read-only — not a full console replacement (Web Console)
  • No screenshot/video binary downloads (stream metadata only)
  • Not a mirror of product docs or the REST catalog — those stay at docs and /api/
  • Alpha — expect breaking changes between minors until 1.0

Quick start (PyPI)

Use the Install badges at the top of this README (Cursor / VS Code; demo credentials). First ensure the CLI is available:

pip install octowatch-mcp

Or configure manually — example for Cursor / Claude-style mcpServers (demo credentials):

{
  "mcpServers": {
    "octowatch": {
      "command": "octowatch-mcp",
      "env": {
        "OCTOWATCH_API_BASE": "https://cloud.octowatchdlp.com",
        "OCTOWATCH_EMAIL": "demo@octowatchdlp.com",
        "OCTOWATCH_PASSWORD": "demo"
      }
    }
  }
}

Ready-made files: examples/cursor-mcp-pypi.json, examples/claude-desktop-pypi.json. Per-host steps: docs/hosts.md.

Restart the host, then try: “Using OctoWatch, who am I logged in as?” or “List risks for the last week.”

Demo credentials work without a .env. Be gentle with the shared demo tenant (avoid aggressive agent loops).

From source

git clone https://github.com/extralabs/octowatch-mcp-server.git
cd octowatch-mcp-server
python -m venv .venv
# Windows: .venv\Scripts\activate
# macOS/Linux: source .venv/bin/activate
pip install -e .
cp .env.example .env   # optional
python -m octowatch_mcp

Use examples/cursor-mcp.json / examples/claude-desktop.json and set cwd to your clone (Windows: D:\\path\\to\\octowatch-mcp-server).

ChatGPT and other hosts

There is no single public ChatGPT JSON config we ship yet — ChatGPT / similar products often use remote MCP connectors rather than a local command stdio process.

  • For local desktop agents, prefer Cursor, Claude Desktop, or VS Code with the examples above.
  • If your host supports custom MCP over HTTP, you can run octowatch-mcp --transport streamable-http (localhost only by default) and register that endpoint per the host’s docs — see docs/hosts.md.

Your account (email / password)

Demo is for try-out only. For your tenant, set:

Variable Meaning
OCTOWATCH_EMAIL Console operator email
OCTOWATCH_PASSWORD Console password
OCTOWATCH_API_BASE Cloud API host if not the default public cloud

Recommended: put them in the MCP host JSON env block — examples/cursor-mcp-pypi-with-env.json / examples/claude-desktop-pypi-with-env.json.

Alternatively, for a source install, copy .env.example.env next to the process working directory.

Never commit real passwords. Verify the same data in the Web Console. Walkthrough: docs/hosts.md.

Core tools

Tool Cloud area Notes
octowatch_whoami Auth session Account / host (no password)
list_users_groups Directory tree Type 0 root, 1 group, 2 user
list_risks Risks + Analytics Default mode=summary
list_anomalies Alerts Formal deviations (not idle)
get_idle_summary Productivity Rank by InactiveTime
get_activity_summary Activity Top apps/sites
get_timesheet TimeSheet Worked vs expected hours
get_productivity_summary Productivity + analytics Per-user rollup
list_reports Reports Scheduled + processing tasks

Console coverage tools

Tool Cloud area Notes
get_analytics Analytics view=overall|disciplina|activity|productivity
get_dashboard Dashboard Widgets; blobs stripped
get_chrono Chrono Timeline
get_day_structure Day structure list or detail
list_monitoring Monitoring One kind; compact by default
search_monitoring Tools → Search filter_key across kinds
get_activity_detail Activity window Drill-down
list_online Live Presence only
list_stream_meta Stream Metadata only
list_directory Edit Get* users/groups/computers/…
get_user_info User card AliasID / computer
get_account_readonly Account Get* No Set*/PIN
list_api_coverage (static) Gap summary

Full arguments, routing, and scenarios: docs/TOOLS.md.
MCP prompts/resources: docs/MCP.md.

Configuration

Env Default Meaning
OCTOWATCH_API_BASE https://cloud.octowatchdlp.com API host (serverBase)
OCTOWATCH_EMAIL demo@octowatchdlp.com Console operator
OCTOWATCH_PASSWORD demo Demo only by default
OCTOWATCH_DEFAULT_DAYS 1 Lookback when tools omit dates/period
OCTOWATCH_TOOLSETS all all | core | console (console includes core)
octowatch-mcp                                      # stdio (default)
octowatch-mcp --transport streamable-http          # http://127.0.0.1:8000/mcp

Periods & filters

Prefer period=today|yesterday|last_7_days|last_30_days, or date_from / date_to.

  • Date-only values cover the full calendar day (date_to23:59:59).
  • Optional user_id (AliasID) and group_id on most read tools.
  • POST body TreeviewUsers: all → NodeType=-666666; group → NodeType=14; user → NodeType=1.

Documentation

Doc Contents
docs/README.md Doc index
docs/hosts.md Install per host + your login
docs/TOOLS.md Tool reference + when-which
docs/MCP.md Protocol, resources, prompts
docs/API.md MCP coverage audit (not a full REST mirror)
docs/troubleshooting.md Common failures
docs/registry.md Official MCP Registry (server.json)

Product & console

Roadmap

Planned (not scheduled): tighter payload budgets, client-side rate limits, argument completions, server icon, optional MCP Apps UI, tool-routing evals. Registry metadata: docs/registry.md. Protocol surface: docs/MCP.md.

Contributing

See CONTRIBUTING.md. Changelog: CHANGELOG.md. Issues: GitHub Issues.

License

MIT — see LICENSE.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

octowatch_mcp-0.5.1.tar.gz (53.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

octowatch_mcp-0.5.1-py3-none-any.whl (37.3 kB view details)

Uploaded Python 3

File details

Details for the file octowatch_mcp-0.5.1.tar.gz.

File metadata

  • Download URL: octowatch_mcp-0.5.1.tar.gz
  • Upload date:
  • Size: 53.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for octowatch_mcp-0.5.1.tar.gz
Algorithm Hash digest
SHA256 ccb21173c908a03d7e16eb249d72ef999b1184b9c9669f9404c36beb0cceb939
MD5 3cad4fad86948328f1ef90f6c77efa41
BLAKE2b-256 8d5bd59abcfd50bdfd30e0c16e329d12c108637c27b96aab17270c0deec14b41

See more details on using hashes here.

Provenance

The following attestation bundles were made for octowatch_mcp-0.5.1.tar.gz:

Publisher: publish.yml on extralabs/octowatch-mcp-server

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file octowatch_mcp-0.5.1-py3-none-any.whl.

File metadata

  • Download URL: octowatch_mcp-0.5.1-py3-none-any.whl
  • Upload date:
  • Size: 37.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for octowatch_mcp-0.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 17dda59c319fccd67056f904afa9ccd0407bc1cb2ceb7a59fe809779d6f139b7
MD5 ce4201bd85ddb50bf587f8ec35329a6a
BLAKE2b-256 1348d425ec18fe12f84945fb69c7b2893097af0709b3f0738db183ca1c277871

See more details on using hashes here.

Provenance

The following attestation bundles were made for octowatch_mcp-0.5.1-py3-none-any.whl:

Publisher: publish.yml on extralabs/octowatch-mcp-server

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.5.1 This release

2 files

0.5.0

2 files

0.4.0

2 files

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