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.0). 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

Product & console

Roadmap

Planned (not scheduled): tighter payload budgets, client-side rate limits, argument completions, server icon, optional MCP Apps UI, tool-routing evals, MCP registry listing clarity. See docs/MCP.md for the current protocol surface.

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.0.tar.gz (51.9 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.0-py3-none-any.whl (37.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: octowatch_mcp-0.5.0.tar.gz
  • Upload date:
  • Size: 51.9 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.0.tar.gz
Algorithm Hash digest
SHA256 a1889d6caa72a1bdf1fcd9fb0836e1702f25b5ccdf530d93f13dccb86d3fd016
MD5 9ac89654c3171afd97dee41b792f01a8
BLAKE2b-256 04871ae664e191cf15225fd0ff36916e8d456dc2c11ce604a32619753f28dc7b

See more details on using hashes here.

Provenance

The following attestation bundles were made for octowatch_mcp-0.5.0.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.0-py3-none-any.whl.

File metadata

  • Download URL: octowatch_mcp-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 37.2 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2f724e6d49c784e79d7f17557f2a13dedd58cae311a246fef0d46325c6494533
MD5 ff92c53b25cb9e317b2d12b163a4986b
BLAKE2b-256 f776ea333d1308e74b6a28dbfbcffa0c3743b130b81cf80c39e0a00d77feb8c5

See more details on using hashes here.

Provenance

The following attestation bundles were made for octowatch_mcp-0.5.0-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

0.5.1

2 files

This release

0.5.0 This release

2 files

0.4.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page