Metadata-Version: 2.4
Name: adp-mcp
Version: 0.1.0.dev0
Summary: ADP MCP Bridge: Expose ADP Hypervisor resources as MCP tools
Author: ADP Team
License: Apache-2.0
Keywords: adp,agent,agentic,ai,data,mcp,protocol
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Python: >=3.11
Requires-Dist: adp-hypervisor>=0.1.0.dev0
Requires-Dist: adp-sdk>=0.1.0.dev0
Requires-Dist: mcp[cli]<2.0,>=1.0
Provides-Extra: dev
Requires-Dist: black<25.0,>=24.0; extra == 'dev'
Requires-Dist: mypy<2.0,>=1.8; extra == 'dev'
Requires-Dist: ruff<1.0,>=0.2; extra == 'dev'
Description-Content-Type: text/markdown

# adp-mcp

ADP MCP Bridge — an [MCP](https://modelcontextprotocol.io/) server that exposes
[ADP Hypervisor](https://github.com/adp-org/adp-hypervisor) resources as MCP tools,
enabling LLM agents to discover, describe, validate, and execute ADP intents.

## Tools

| Tool | Description |
|------|-------------|
| `adp_discover` | List available ADP resources, with optional filters by domain, intent class, or keyword |
| `adp_describe` | Get the usage contract (field schema, predicates, projections) for a resource + intent class |
| `adp_validate` | Validate an intent IR against a resource schema without executing it |
| `adp_execute` | Execute an ADP intent and return results (supports pagination via cursor) |

## Installation

```bash
pip install adp-mcp
```

## Usage

```bash
adp-mcp --config /path/to/adp/manifest [--log-level INFO]
```

Logs are written to stderr. To redirect them to a file, use shell redirection:

```bash
adp-mcp --config /path/to/adp/manifest 2>/path/to/adp-mcp.log
```

### Authentication

Set environment variables for Basic Auth:

```bash
export ADP_USERNAME=myuser
export ADP_PASSWORD=mypassword
```

If `ADP_USERNAME` is not set, the server connects anonymously.

### MCP Client Configuration

```json
{
  "mcpServers": {
    "adp": {
      "command": "adp-mcp",
      "args": ["--config", "/path/to/adp/manifest"]
    }
  }
}
```

## Docker Quickstart

The [`docker/`](./docker/) directory contains a self-contained Docker Compose stack
that starts all backend dependencies and a prepared `mcp-runtime` container.
This is the fastest way to try ADP MCP without installing anything locally.

```bash
cd adp-mcp/docker
docker compose up -d
```

See [docker/README.md](./docker/README.md) for the full setup guide and MCP client configuration.

## Development

```bash
cd adp-mcp
uv sync --extra dev
uv run python -m unittest discover -s tests -v
```
