Skip to content

MCP server

analog-mcp exposes Analog to MCP-compatible agents. It reads the credential the analog CLI stores, so install both tools:

Terminal window
uv tool install analog-sdk
uv tool install analog-mcp

Then connect a new account:

Terminal window
analog signup

Or connect an existing account:

Terminal window
analog login

The credential lands in the local store and the MCP server reads it from there; no key ever lands in a config file.

Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
"mcpServers": {
"analog": {
"command": "analog-mcp"
}
}
}

Restart the client. Cursor and other stdio MCP clients configure the same way: the server command is analog-mcp.

analog extracts a page and returns a bounded receipt with section shapes, representative records, completeness disclosures, and a saved-result handle. Its JSON text fallback is capped at 16,384 characters. Pass pages=N to follow the page’s own next-page links and merge the results; each page costs one extraction and the response discloses the total.

assess checks whether structured extraction fits the task using measured Markdown size, task guidance, verified platform feeds, and pagination facts. It does not require sign-in.

Every extraction is saved locally. analog_history recovers handles as cheap metadata; analog_open returns a result in full, while analog_describe provides a smaller preview. analog_section returns one section, analog_collection combines compatible page areas as one dataset, and analog_find searches saved content. analog_export changes the output format without fetching again. analog_feedback reports a poor extraction or sends a feature request.

analog(url: string, pages: integer = 1)

Static domains:

  • pages — 1–50.
assess(url: string, probe_feed: boolean = true)
analog_history(limit: integer = 20)

Static domains:

  • limit — at least 0.
analog_open(handle: string)
analog_export(handle: string, fmt: string = "json")

Static domains:

  • fmt — one of "json", "csv", "yaml", "md", "markdown".
analog_section(handle: string, index: integer)

Static domains:

  • index — at least 0.
analog_collection(handle: string, index: integer)

Static domains:

  • index — at least 0.
analog_find(handle: string, pattern: string, field: string | null = null)
analog_describe(handle: string, complete: boolean = false)
analog_feedback(kind: string, url: string | null = null, labels: list[string] | null = null, note: string = "")

Static domains:

  • kind — one of "extraction_quality", "feature_request".
  • labels — one of "undetected_block", "under_rendered", "no_records_found", "poor_field_naming", "misfielded_values", "page_chrome_in_records", "over_extraction", "under_extraction", "wrong_content_extracted", "garbled_markdown", "other".