Metadata-Version: 2.4
Name: catalog-services-grpc-mcp
Version: 0.1.0
Summary: MCP server that wraps grpcurl for Catalog Services gRPC API
Requires-Python: >=3.11
Description-Content-Type: text/markdown
Requires-Dist: mcp>=1.27.1

# catalog-services-grpc-mcp

MCP server that wraps `grpcurl` for calling Catalog Services gRPC APIs.

## Requirements

- `grpcurl` on PATH
- Python 3.11+
- `uv`

## Tools

### `grpc_invoke`

Execute a gRPC method via grpcurl.

| Parameter  | Description |
|------------|-------------|
| `url`      | gRPC server address (e.g. `host:443`) |
| `endpoint` | `Service.Method` (e.g. `ProductService.GetProducts`) |
| `payload`  | JSON request body |

**Example:**
```json
{
  "url": "catalog-service-grpc.corp.ethos340-stage-va6.ethos.adobe.net:443",
  "endpoint": "ProductService.GetProducts",
  "payload": {
    "products_by_store_view": {
      "store_view_id": {
        "environment_id": "3f73a49a-3137-472c-bb0d-39d0e7925d86",
        "website_code": "base",
        "store_code": "main_website_store",
        "store_view_code": "default"
      },
      "skus": ["test"]
    }
  }
}
```

### `grpc_list_services`

List services available on a gRPC server.

| Parameter | Description |
|-----------|-------------|
| `url`     | gRPC server address |

## Running

```bash
uv run python main.py
```

## Claude Code MCP config

Add to `.claude/settings.json` or `~/.claude/settings.json`:

```json
{
  "mcpServers": {
    "catalog-services-grpc": {
      "command": "uv",
      "args": ["run", "python", "main.py"],
      "cwd": "/path/to/catalog-services-grpc-mcp"
    }
  }
}
```
