Skip to main content

octowatch-mcp

Read-only MCP server for OctoWatch DLP Cloud.

Ask Claude / Cursor / ChatGPT in plain language:

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

Python MCP SDK v2 (MCPServer). Built for SecOps and managers — and as open-source PR for octowatchdlp.com.

Security: 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.

Status

Alpha (v0.4.0): read-only coverage of Cloud console APIs (analytics, monitoring lists, dashboard, chrono, directory, account Gets). See docs/API.md gap matrix or tool list_api_coverage.

Core tools

Tool API Notes
octowatch_whoami Access/login-jwt Account / host (no password)
list_users_groups Edit/GetUsersGroups2 Tree: Type 0 root, 1 group, 2 user
list_risks Analytics/Overall + Risks/Overall2 Default mode=summary
list_anomalies Alerts/Overall2 Formal deviations (not idle)
get_idle_summary Productivity/Overall3 Rank by InactiveTime
get_activity_summary Activity/Overall2 Top apps/sites
get_timesheet TimeSheet/Overall2 Worked vs expected hours
get_productivity_summary Overall3 + stats + analytics Per-user rollup
list_reports GetReports + GetProcessingTasks ReportTypes labeled

Console coverage tools

Tool API Notes
get_analytics Analytics/* view=overall|disciplina|activity|productivity
get_dashboard Dashboard/Get* + metric1 Widgets; blobs stripped
get_chrono Chrono/Overall2 Timeline
get_day_structure DayStructureList / GetDayStructure
list_monitoring Monitoring/{kind} 19 kinds; compact by default
search_monitoring Tools Search fan-out filter_key across 13 kinds
get_activity_detail ActivityWindow / CategoryWindow Drill-down
list_online Live/Overall2 Presence only
list_stream_meta Stream meta Gets No video download
list_directory Edit Get* directory users/groups/computers/…
get_user_info GetUserData2 / tooltip / …
get_account_readonly Account/Edit Get* No Set*/PIN
list_api_coverage (static matrix) Gap summary

Quick start

From PyPI

pip install octowatch-mcp
octowatch-mcp
# or: python -m octowatch_mcp

Demo defaults work without a .env. For Cursor/Claude after install, merge examples/cursor-mcp-pypi.json or examples/claude-desktop-pypi.json (command octowatch-mcp, no repo cwd).

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; demo defaults work without it
python -m octowatch_mcp

Merge examples/cursor-mcp.json / examples/claude-desktop.json into MCP settings (fix cwd / use python from the venv). Restart and try: “List OctoWatch risks for the last week.”

Release (maintainers)

CI runs unit tests and live demo smoke on main. Publishing to PyPI uses Trusted Publisher on a version tag:

# version in pyproject.toml must match the tag (e.g. 0.4.0 → v0.4.0)
git tag v0.4.0
git push origin v0.4.0

Configuration

Env Default Meaning
OCTOWATCH_API_BASE https://cloud.octowatchdlp.com API host from spm-config.jsonserverBase
OCTOWATCH_EMAIL demo@octowatchdlp.com Console admin / operator
OCTOWATCH_PASSWORD demo Demo only
OCTOWATCH_DEFAULT_DAYS 1 Lookback when tool omits dates/period

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.

Auth & period calls (API)

  1. GET /api/Access/login-jwt?email=…&password=…Token, RefreshToken, PublicID
  2. Later requests: Authorization: Bearer <Token>
  3. Period POSTs need headers DateFrom / DateTo as yyyy-MM-dd HH:mm:ss
  4. Body (users/groups filter):
[{ "NodeType": -666666, "UserID": -666666 }]

Marketing / interactive docs: app.octowatchdlp.com/api/.
Help catalog: https://cloud.octowatchdlp.com/Help.
Product docs: octowatchdlp.com/docs/.
Coverage audit: docs/API.md.

Roadmap

  • Date-only full-day fix + relative period
  • Risks summary + idle helper + compact formatters
  • Correct TreeviewUsers NodeType (group=14, user=1)
  • Console read-only coverage (Monitoring, Dashboard, Chrono, Account Gets)
  • Report generator queue (Edit/QueueReportEmail) as optional write-opt-in
  • PyPI publish + GitHub Action smoke against demo
  • TypeScript port (optional)

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.4.0.tar.gz (35.0 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.4.0-py3-none-any.whl (31.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: octowatch_mcp-0.4.0.tar.gz
  • Upload date:
  • Size: 35.0 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.4.0.tar.gz
Algorithm Hash digest
SHA256 af2d172e20668d741cebd020b1b14adcf799f68d00fa08a59b811a51c99ca072
MD5 bdb7db0c19293884240b5649d44baf0d
BLAKE2b-256 89bcffe965651fe1fd163f785e5282edf929b8719768776c436466a9493739d6

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: octowatch_mcp-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 31.4 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.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 19c693c12151f14c0c1c44317c967f7e5e83ce0fa12bf266fcbf6018643a7478
MD5 bc260c518cc20ef49e6ce61369856ef9
BLAKE2b-256 85bfc00fe4daa166df325b6a2e8a42d91debee59a2aead7cc4d7fc80438154df

See more details on using hashes here.

Provenance

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

0.5.0

2 files

This release

0.4.0 This release

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