"stdout": "[{\"command\":\"help\",\"httpMethod\":\"GET\",\"category\":\"general\",\"dangerous\":false,\"description\":\"Display available commands\"}]",
"stderr": "",
"duration": 0
}
```
### Protected endpoints (API key required)
#### Execute CLI command
```
GET|POST|DELETE /api/v1/cli/{command}
Authorization: Bearer <api-key>
```
Executes an Obsidian CLI command and returns the result.
StreamableHTTP transport for the Model Context Protocol. Exposes 2 tools (`search` and `execute`) using the Code Mode pattern for progressive command discovery. See [MCP integration](mcp-integration.md) for setup details.
| 500 | Internal server error | Unexpected server failure |
| 503 | Service unavailable | Obsidian CLI binary not found |
## CORS
Cross-origin requests are disabled by default. Enable CORS in plugin settings if you need to call the API from a browser.
When enabled, the server responds to `OPTIONS` preflight requests and adds appropriate `Access-Control-Allow-*` headers.
## Rate limiting
There is no built-in rate limiting. The server processes requests sequentially via CLI execution. Each request spawns a CLI process, so very rapid requests may queue up. The request timeout setting (default: 30 seconds) prevents requests from hanging indefinitely.