Metadata-Version: 2.4
Name: analog-mcp
Version: 0.1.0
Summary: Model Context Protocol server for Analog — expose webpage extraction to MCP-compatible AI agents.
Project-URL: Homepage, https://getanalog.io
Author-email: Marcus Campbell <marcus@getanalog.io>
License: MIT
License-File: LICENSE
Requires-Python: >=3.10
Requires-Dist: analog-sdk<0.2.0,>=0.1.0
Requires-Dist: mcp>=1.0
Provides-Extra: fetcher
Requires-Dist: analog-fetcher<0.2.0,>=0.1.0; extra == 'fetcher'
Description-Content-Type: text/markdown

# analog-mcp

A Model Context Protocol server that exposes [Analog](https://getanalog.io)'s
webpage-extraction engine to MCP-compatible AI agents — Claude Desktop,
Cursor, and anything else that speaks MCP.

The headline tool is `analog(url)`. Point it at a webpage; get back
structured records (articles, pricing tables, product listings, etc.)
already parsed into JSON. Same one-call shape as the Python SDK; same
brand verb — `analog` is what your agent calls when it needs the
content of a page in a form it can actually reason over.

## Install

```bash
pip install analog-mcp
```

Or via [uv](https://docs.astral.sh/uv/):

```bash
uvx analog-mcp     # one-off
uv tool install analog-mcp
```

## Configure your MCP client

You'll need an Analog API key. Get one at <https://getanalog.io> and
set it via the client's `env` block.

### Claude Desktop

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

```json
{
  "mcpServers": {
    "analog": {
      "command": "analog-mcp",
      "env": { "ANALOG_API_KEY": "ak_your_key_here" }
    }
  }
}
```

Restart Claude Desktop. The `analog` tool will appear in the tool list.

### Cursor / other MCP clients

Same idea — the server command is `analog-mcp` and it speaks stdio.
Refer to your client's MCP configuration docs for the exact file
location.

## Usage

Once configured, just ask the agent things like:

> Extract the speakers from <https://example-conference.com/2026>

The agent calls `analog(url=…)` under the hood. The tool returns
self-contained JSON with the parsed records plus a markdown rendering
of the page, which the agent can then reason over directly.

## What this version ships

`analog-mcp 0.1.0` exposes a single tool — `analog(url)` — over the
stdio transport. That's enough to cover the bulk of "give me the
structured content of this page" use cases.

Planned for future versions:

- Additional tools for narrower queries
- SSE / streamable-HTTP transport for hosted/remote agents
- A `[fetcher]` extra that wires in JS-aware fetching for pages that
  need browser rendering (the install path exists today; the tool
  surface lands next)

## License

MIT — see [LICENSE](./LICENSE).

## Links

- Homepage: <https://getanalog.io>
- Python SDK: [`analog-sdk` on PyPI](https://pypi.org/project/analog-sdk/)
- JS-aware fetcher: [`analog-fetcher` on PyPI](https://pypi.org/project/analog-fetcher/)
