MCP installation
Install opentide and start the stdio server with opentide mcp start.
PyPI
The server ships in the base package:
pip install 'opentide==0.18.0'Command: opentide mcp start. It calls opentide.mcp_server.launcher:main, which probes for mcp.server.mcpserver before importing the server.
mcp was an optional [mcp] extra until 0.14.0, on the grounds that it pulls a
web-server stack (starlette, httpx, sse-starlette, uvicorn) that a CI
pipeline running opentide validate has no use for. That traded a few
megabytes for a first-class CLI command that did not work on a plain install,
so mcp is now a base dependency. Since 0.16.0 opentide declares no extras at
all; an existing pip install opentide[mcp] or an editor config naming it still
installs opentide, with a warning from pip or uv about the unknown extra.
The base dependency pins mcp>=2.3,<3. mcp 2.x replaced
mcp.server.fastmcp with mcp.server.mcpserver.MCPServer, and opentide uses
the 2.x import, so an environment that still pins mcp 1.x has to upgrade it.
The launcher tells that case apart from a missing mcp rather than reporting
both as missing.
All eight platform adapters ship in the same wheel — enable them in the repo with opentide setup platforms.
Verify
opentide mcp with no subcommand prints help and exits. It does not start the server. opentide mcp start blocks until the host closes stdin. That is what an editor expects. Stop is the host closing stdin. Reload is the host spawning the command again. There is no reload or stop subcommand.
which opentide
export OPENTIDE_REPO_ROOT=/path/to/detection-repo
opentide mcp --help
opentide mcp startIf mcp cannot be imported — an incomplete environment, or an incompatible major — you get this on stderr instead of a traceback:
opentide mcp start cannot import mcp.server.mcpserver, but mcp ships as a base dependency of opentide — this environment is incomplete.
Repair it with: pip install 'mcp>=2.3,<3'
Everything else in the opentide CLI works without it.MCP hosts spawn the process automatically; you rarely run it manually.
opentide setup mcp warns when it writes a config for a server you cannot yet start.
Logging on opentide mcp start is JSON/plain structlog on stderr. stdout is JSON-RPC only.
Scaffold editor config
opentide setup mcp --cursor --yes
opentide setup mcp --vscode --claude-code --generic --yesSee Configuration.
Development
From this repository:
uv sync --group dev
uv run opentide mcp startLogging initialises as JSON/plain structlog on the MCP process (no Rich banner).