01Remote MCP server
- URL
https://www.bradfordoperations.com/api/mcp- Transport
- Streamable HTTP, POST only, JSON responses, stateless (no session id)
- Protocol versions
- 2026-07-28, 2025-11-25, 2025-06-18, 2025-03-26
- Key
- None. Read-only; 60 requests a minute per address.
Any MCP client that takes a server URL can add it. Tools:
find_services: Say what you want done for footage or a film, in plain words ("I want to make a DCP", "give my footage a glitch look"). Returns the Bradford services that fit (status, price, next steps) and any matching looks; matched is false, with no services, when Bradford does not offer it.find_looks: Direction words in ("worn VHS tape", "risograph in blue and orange", "CRT screen"), the matching looks out, best first, each with what it does, its parameters and before/after sample URLs. The whole gallery is https://www.bradfordoperations.com/agents/looks.json.get_look: One look by id (e.g. "glitch/Receiver/factoryLook:6"): what it does, its params, the effect's controls with ranges, and its sample.
02Examples
curl -s https://www.bradfordoperations.com/api/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"server/discover","params":{"_meta":{"io.modelcontextprotocol/protocolVersion":"2026-07-28","io.modelcontextprotocol/clientCapabilities":{}}}}'{
"jsonrpc": "2.0",
"id": 1,
"result": {
"supportedVersions": [
"2026-07-28",
"2025-11-25",
"2025-06-18",
"2025-03-26"
],
"capabilities": {
"tools": {}
},
"instructions": "Ask what Bradford Operations can do for footage or a film, in plain words (find_services), find Glitch and Textures looks by direction words (find_looks) and read one look's parameters and before/afte… (trimmed)",
"cacheScope": "public",
"ttlMs": 3600000,
"resultType": "complete",
"_meta": {
"io.modelcontextprotocol/serverInfo": {
"name": "bradford-operations",
"title": "Bradford Operations",
"version": "1.0.0",
"websiteUrl": "https://www.bradfordoperations.com/software/agents"
}
}
}
}curl -s https://www.bradfordoperations.com/api/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"_meta":{"io.modelcontextprotocol/protocolVersion":"2026-07-28","io.modelcontextprotocol/clientCapabilities":{}},"name":"find_looks","arguments":{"direction":"worn VHS tape","limit":2}}}'{
"jsonrpc": "2.0",
"id": 2,
"result": {
"content": [
{
"type": "text",
"text": "glitch/Encoder/factoryLook:3: Worn VTR heads: a 3 µs head-switch tear at the bottom of the frame and slight timebase jitter. (still https://www.bradfordoperations.com/images/plugins/samples/glitch/enc… (trimmed)"
}
],
"structuredContent": {
"matched": true,
"looks": [
{
"id": "glitch/Encoder/factoryLook:3",
"product": "glitch",
"look": "factoryLook:3",
"name": "VTR · worn heads · 3 µs head switch",
"does": "Worn VTR heads: a 3 µs head-switch tear at the bottom of the frame and slight timebase jitter.",
"directions": [
"analog video",
"composite video",
"… 12 more (trimmed)"
],
"params": {
"headSwitchUs": 3,
"jitterUs": 0.12,
"headSwitchLines": 7
},
"paramsAre": "differences from the effect defaults; ranges are in effects[].controls and menus",
"sample": {
"form": "wipe",
"mime": "video/mp4",
"width": 720,
"height": 540,
"durationSec": 2,
"fps": 24,
"afterStill": "https://www.bradfordoperations.com/images/plugins/samples/glitch/encoder-factorylook-3-still.webp",
"afterSequence": "https://www.bradfordoperations.com/images/plugins/samples/glitch/encoder-factorylook-3-seq.webp",
"sequenceFrames": [
0,
12,
"… 2 more (trimmed)"
],
"before": "https://www.bradfordoperations.com/images/plugins/samples/glitch/source.webp",
"after": "https://www.bradfordoperations.com/images/plugins/samples/glitch/encoder-factorylook-3.mp4",
"note": "after is a 2 s wipe (the look left of a moving divider, the untreated frame right of it) for people; afterStill is the full treated frame and afterSequence four kept frames, for models.",
"chain": [
{
"effect": "com.bradfordoperations.glitch.Encoder",
"params": {
"headSwitchUs": 3,
"jitterUs": 0.12,
"headSwitchLines": 7
},
"lookVersion": 1
},
{
"effect": "com.bradfordoperations.glitch.Receiver",
"params": {},
"lookVersion": 1
}
],
"license": {
"after": {
"source": "prelinger-openroada-t360",
"license": "cc-public-domain-dedication",
"licenseName": "Creative Commons Public Domain Dedication",
"status": "cleared"
},
"before": {
"source": "prelinger-openroada-t360",
"license": "cc-public-domain-dedication",
"licenseName": "Creative Commons Public Domain Dedication",
"status": "cleared"
},
"afterStill": {
"source": "prelinger-openroada-t360",
"license": "cc-public-domain-dedication",
"licenseName": "Creative Commons Public Domain Dedication",
"status": "cleared"
},
"afterSequence": {
"source": "prelinger-openroada-t360",
"license": "cc-public-domain-dedication",
"licenseName": "Creative Commons Public Domain Dedication",
"status": "cleared"
}
}
},
"renderedBy": {
"service": "glitch-looks",
"plugin": "Bradford Glitch",
"lookVersion": 1
},
"effect": {
"id": "com.bradfordoperations.glitch.Encoder",
"key": "Encoder",
"name": "Encoder"
},
"matched": [
"VHS",
"worn tape",
"… 1 more (trimmed)"
]
},
{
"id": "glitch/Encoder/factoryLook:1",
"product": "glitch",
"look": "factoryLook:1",
"name": "NTSC · 4fsc SD · reference",
"does": "A clean NTSC composite signal at 4fsc, decoded by a Receiver at its defaults: the reference analog picture.",
"directions": [
"analog video",
"composite video",
"… 9 more (trimmed)"
],
"params": {},
"paramsAre": "differences from the effect defaults; ranges are in effects[].controls and menus",
"sample": {
"form": "wipe",
"mime": "video/mp4",
"width": 720,
"height": 540,
"durationSec": 2,
"fps": 24,
"afterStill": "https://www.bradfordoperations.com/images/plugins/samples/glitch/encoder-factorylook-1-still.webp",
"afterSequence": "https://www.bradfordoperations.com/images/plugins/samples/glitch/encoder-factorylook-1-seq.webp",
"sequenceFrames": [
0,
12,
"… 2 more (trimmed)"
],
"before": "https://www.bradfordoperations.com/images/plugins/samples/glitch/source.webp",
"after": "https://www.bradfordoperations.com/images/plugins/samples/glitch/encoder-factorylook-1.mp4",
"note": "after is a 2 s wipe (the look left of a moving divider, the untreated frame right of it) for people; afterStill is the full treated frame and afterSequence four kept frames, for models.",
"chain": [
{
"effect": "com.bradfordoperations.glitch.Encoder",
"params": {},
"lookVersion": 1
},
{
"effect": "com.bradfordoperations.glitch.Receiver",
"params": {},
"lookVersion": 1
}
],
"license": {
"after": {
"source": "prelinger-openroada-t360",
"license": "cc-public-domain-dedication",
"licenseName": "Creative Commons Public Domain Dedication",
"status": "cleared"
},
"before": {
"source": "prelinger-openroada-t360",
"license": "cc-public-domain-dedication",
"licenseName": "Creative Commons Public Domain Dedication",
"status": "cleared"
},
"afterStill": {
"source": "prelinger-openroada-t360",
"license": "cc-public-domain-dedication",
"licenseName": "Creative Commons Public Domain Dedication",
"status": "cleared"
},
"afterSequence": {
"source": "prelinger-openroada-t360",
"license": "cc-public-domain-dedication",
"licenseName": "Creative Commons Public Domain Dedication",
"status": "cleared"
}
}
},
"renderedBy": {
"service": "glitch-looks",
"plugin": "Bradford Glitch",
"lookVersion": 1
},
"effect": {
"id": "com.bradfordoperations.glitch.Encoder",
"key": "Encoder",
"name": "Encoder"
},
"matched": [
"VHS"
]
}
]
},
"resultType": "complete",
"_meta": {
"io.modelcontextprotocol/serverInfo": {
"name": "bradford-operations",
"title": "Bradford Operations",
"version": "1.0.0",
"websiteUrl": "https://www.bradfordoperations.com/software/agents"
}
}
}
}curl -s https://www.bradfordoperations.com/api/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-11-25","capabilities":{},"clientInfo":{"name":"example","version":"1.0"}}}'{
"jsonrpc": "2.0",
"id": 1,
"result": {
"protocolVersion": "2025-11-25",
"capabilities": {
"tools": {
"listChanged": false
}
},
"serverInfo": {
"name": "bradford-operations",
"title": "Bradford Operations",
"version": "1.0.0",
"websiteUrl": "https://www.bradfordoperations.com/software/agents"
},
"instructions": "Ask what Bradford Operations can do for footage or a film, in plain words (find_services), find Glitch and Textures looks by direction words (find_looks) and re… (trimmed)"
}
}03On the person’s own machine
- bradford-fx (local MCP, stdio) (coming): Ships with the Bradford Plugins desktop app, which is not released yet. The effects engine inside the app speaks MCP; the app's "Connect to an agent" registers it with Claude Desktop or Claude Code as `bradford-fx` (command: the app's bradford_fx, args: ["mcp"]). Tools list effects and looks, describe parameters, validate a stack and render previews and files on the person's own machine with their license.
- build_stack_from_references (local MCP, stdio) (coming): Built and tested by Bradford, not yet shipped to customers. Reference pictures and a written direction in, a validated Glitch/Textures stack out. Runs beside bradford-fx; abstains when the direction is not something these effects can make.
- Cloud renders (CLI/MCP and API) (coming): Send footage and a stack to Bradford's render fleet from the Plugins app's CLI or MCP; the render comes back as a new version in the person's Lab library. Needs a Lab account, a license for the plugin, and a Lab balance: $1.00 per finished minute at HD, $3.00 at 4K, charged by the second.