Metadata-Version: 2.4
Name: wcp
Version: 0.1.0
Summary: wcpd: reference implementation of the Workstation Capability Protocol (WCP)
Author: The Workstation Capability Protocol contributors
License: Apache-2.0
Project-URL: Homepage, https://github.com/kchemorion/WorkstationCapabilityProtocol
Project-URL: Repository, https://github.com/kchemorion/WorkstationCapabilityProtocol
Project-URL: Documentation, https://github.com/kchemorion/WorkstationCapabilityProtocol/blob/main/SPEC.md
Project-URL: Issues, https://github.com/kchemorion/WorkstationCapabilityProtocol/issues
Keywords: mcp,model-context-protocol,ai-agents,automation,desktop-automation,accessibility,workstation,wcp
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: MacOS
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: Microsoft :: Windows
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: System :: Systems Administration
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pyjwt>=2.8
Requires-Dist: mcp>=1.2
Requires-Dist: uvicorn>=0.30
Requires-Dist: jsonschema>=4.21
Provides-Extra: dev
Requires-Dist: pytest>=8; extra == "dev"
Requires-Dist: pytest-asyncio>=0.23; extra == "dev"
Requires-Dist: jsonschema>=4.21; extra == "dev"
Provides-Extra: linux-ax
Requires-Dist: PyGObject>=3.42; extra == "linux-ax"
Provides-Extra: windows-ax
Requires-Dist: comtypes>=1.2; extra == "windows-ax"
Provides-Extra: graph
Requires-Dist: rdflib>=6; extra == "graph"
Dynamic: license-file

# wcpd — Workstation Capability Protocol (reference server)

`wcpd` is the reference implementation of the **Workstation Capability Protocol (WCP)** — an open, vendor-neutral standard that lets an AI agent discover, understand, and operate a whole workstation under governed, audited, revocable authority.

It exposes **35 capability families / 258 operations** — accessibility tree, windows, screen, files, processes, packages, services, containers, VMs, Kubernetes, git, networking, a browser (Chrome DevTools), and an RDF/PROV-O knowledge-graph view of the machine — behind least-privilege scopes, sandbox confinement, and a hash-chained tamper-evident audit log. It speaks the [Model Context Protocol](https://modelcontextprotocol.io), so any MCP client (Claude Desktop, Claude Code, …) can use it today.

## Install

```bash
pip install wcp
pip install "wcp[graph]"     # + live SPARQL (rdflib) for wcp.graph.export
```

Extras: `graph` (rdflib for live SPARQL), `linux-ax` (PyGObject for the Linux AT-SPI2 accessibility backend), `windows-ax` (comtypes for the Windows UI Automation backend).

## Run

```bash
wcpd stdio     # local single-user MCP over stdio (OS session = trust boundary)
wcpd serve     # HTTP/MCP binding (workstation-addressed JWT) for networked use
wcpd doctor    # probe which capability tiers this host supports
```

Restricted scopes are off by default and opt-in per flag:
`--allow-input --allow-osa --allow-browser-eval --allow-scheduler --allow-secrets`.

## Security

Every operation carries exactly one scope (`wcp:<family>:<class>`); five restricted scopes (`input:synthesize`, `osa:run`, `browser:evaluate`, `scheduler:control`, `security:secrets`) are never granted by wildcard and are opt-in per flag. Filesystem-touching families are sandbox-confined; every invocation (including denials) is appended to a SHA-256 hash-chained audit log that `wcp.security.audit_verify` can re-check for tampering. WCP never bypasses SIP/TCC/sudo — where a capability isn't available it returns `WCP_BACKEND_UNAVAILABLE` rather than faking a result.

## Connect to Claude Desktop

Install into a venv outside macOS TCC-protected folders, add a `wcp` entry to
`~/Library/Application Support/Claude/claude_desktop_config.json`, restart Claude Desktop,
and grant Accessibility + Screen Recording. Full guide, complete capability catalog, and
the normative spec: **https://github.com/kchemorion/WorkstationCapabilityProtocol**

## License

Apache-2.0. See [`LICENSE`](LICENSE).
