# CyberPatch — agent docs

CyberPatch — patch management SaaS by Cyber-SG. Surface derived from the public site only (no code access).

## Site pages

- [CyberPatch — Patch Management](/docs/pages/home.md) — original: https://patch.cyber-sg.com/

## Actions

### get_product_info
What CyberPatch is, who it is for, and where to find it.
- Call: `POST https://agents.cyber-sg.com/actions/get_product_info` or MCP tool `get_product_info` at https://agents.cyber-sg.com/mcp

### check_service_status
Live availability check of the CyberPatch web application (HTTP status and latency, observed from the gateway right now).
- Call: `POST https://agents.cyber-sg.com/actions/check_service_status` or MCP tool `check_service_status` at https://agents.cyber-sg.com/mcp

### get_access_info
How a prospective customer (or their agent) obtains CyberPatch access. This tenant has no delegated signup action yet — this returns the human path.
- Call: `POST https://agents.cyber-sg.com/actions/get_access_info` or MCP tool `get_access_info` at https://agents.cyber-sg.com/mcp


## Connect an AI client

### Claude Code

```sh
claude mcp add --transport http cyberpatch https://agents.cyber-sg.com/mcp
```

### Claude (web / Desktop)

Settings → Connectors → Add custom connector → `https://agents.cyber-sg.com/mcp`

### ChatGPT (developer mode)

Settings → Security and login → Developer mode → on. Then add a connector
pointing at `https://agents.cyber-sg.com/mcp`.

### Any other MCP client

```json
{ "mcpServers": { "cyberpatch": { "type": "http", "url": "https://agents.cyber-sg.com/mcp" } } }
```

The endpoint is JSON-RPC over HTTP POST (streamable HTTP). A GET returns 405
with a pointer to the protocol — that is correct MCP behaviour, not an outage.

## Structured data

- schema.org JSON-LD entity graph: https://agents.cyber-sg.com/structured-data.json
- Site operators: the embed pack at [/docs/embed-structured-data.md](/docs/embed-structured-data.md)
  has the snippet to paste into the main site's `<head>`.

## For the site operator (not agents)

Two copy-paste packs, pre-filled with this tenant's real values:

- [/docs/discovery-pack.md](/docs/discovery-pack.md) — the three one-line additions to
  https://patch.cyber-sg.com that let search engines and the AI chat apps find this surface
  at all. Without them the surface works only for clients handed its URL directly.
- [/docs/embed-structured-data.md](/docs/embed-structured-data.md) — the JSON-LD entity
  snippet for the main site's `<head>`.

## Integration

1. Fetch the manifest: `GET https://agents.cyber-sg.com/.well-known/b2a.json`
2. Diff your knowledge: `GET https://agents.cyber-sg.com/changelog`
3. Prove your integration in the sandbox first: same contracts, zero side effects —
   prefix paths with `/sandbox` or send `B2A-Environment: sandbox`
4. Call actions via MCP (`https://agents.cyber-sg.com/mcp`) or REST (`https://agents.cyber-sg.com/actions/{name}`)
5. Mutations are idempotent: send an `Idempotency-Key` header (or rely on
   input-hash dedup) — retries replay the original result instead of re-executing
6. Every successful mutation returns an Ed25519-signed receipt; verify it at
   `https://agents.cyber-sg.com/receipts/{id}` against `https://agents.cyber-sg.com/.well-known/b2a-keys.json`
