opentide

Choosing an interface

When to use the CLI, the Python SDK, or the MCP server — they are three doors to the same engine.

opentide exposes the same engine three ways. They share the object model, validation, and deployment logic — the difference is who is driving.

flowchart TD
  engine["opentide engine<br/>objects · validate · generate · deploy · document"]
  cli["CLI · opentide"] --> engine
  sdk["SDK · from opentide import Opentide"] --> engine
  mcp["MCP · opentide mcp start"] --> engine

Decision table

If you are…UseWhy
A person running commands, or a CI pipelineCLIErgonomic, scriptable, sets exit codes for gates
Embedding opentide in a Python app, service, or testSDKTyped objects, direct access to the registry and results
An AI agent in an editorMCPStructured tools/resources with honest capability reporting

Rules of thumb

  • Start with the CLI. For onboarding, daily authoring, and CI, the CLI is the shortest path. Everything in the tutorial uses it.
  • Reach for the SDK when you need to compose. Building a custom report, a bespoke gate, or integrating opentide into another tool? The SDK gives you the objects and results as Python.
  • Use MCP for agents, not automation. MCP is for interactive AI assistance in an editor. For unattended pipelines, use the CLI — and remember MCP's validate_query and run_query contact a tenant only with live: true (agentic setup).

The same operation, three ways

Validating a rule:

opentide validate --uuid 00000000-0000-4000-8003-000000000001 --strict
from opentide import Opentide
Opentide.initialise()
result = Opentide.Rules["00000000-0000-4000-8003-000000000001"].validate()
print(result.ok, result.errors)
validation_report(uuid="00000000-0000-4000-8003-000000000001")

Capabilities compared

CapabilityCLISDKMCP
Validate objects✅✅✅
Validate query syntax✅✅⚠️ stub
Generate schemas/templates✅✅—
Deploy (dry-run + real)✅✅dry-run focus
Document✅✅—
Search / coverage / chainingvia infovia registry✅ tools
Best forhumans + CIPython integrationagents

Next

On this page