Metadata-Version: 2.1
Name: sprocket-systems.coda.sdk-mcp
Version: 1.2.0
Summary: MCP server for Coda SDK documentation, validation, and live data
Requires-Python: >=3.12
Requires-Dist: sprocket-systems.coda.sdk==2.6.0
Requires-Dist: fastmcp
Requires-Dist: starlette
Requires-Dist: uvicorn[standard]
Requires-Dist: loguru
Description-Content-Type: text/markdown

# sprocket-systems.coda.sdk-mcp

MCP server for the Coda audio processing Python SDK. Provides documentation, examples, live data access, and code validation tools for AI-assisted Coda development.

## Quick Start

Requires [uv](https://docs.astral.sh/uv/) — install it with:

```bash
curl -LsSf https://astral.sh/uv/install.sh | sh
```

Add to your MCP client config (Claude Code, Cursor, Windsurf, etc.):

```json
{
  "mcpServers": {
    "coda-sdk": {
      "command": "uvx",
      "args": [
        "--from",
        "sprocket-systems.coda.sdk-mcp@x.x.x",
        "coda-sdk-mcp"
      ],
      "env": {
        "CODA_SDK_MCP_CODA_API_TOKEN": "your-token"
      }
    }
  }
}
```

Replace `x.x.x` with the desired version. Pinning ensures a consistent environment — `uvx` will download that version on first run and cache it for subsequent starts.

## Tools (15)

| Tool | Description |
|------|-------------|
| `sdk_get_api_reference` | Get API reference docs for a module |
| `sdk_get_guide` | Get usage guide by topic |
| `sdk_search_docs` | Full-text search across SDK docs |
| `sdk_list_examples` | List available SDK code examples |
| `sdk_get_example` | Get full content of an example |
| `sdk_list_presets` | List Coda presets (optionally filtered by type) |
| `sdk_list_groups` | List Coda groups with IDs |
| `sdk_list_io_locations` | List Coda IO locations |
| `sdk_io_list_folders` | List folders at a path within a Coda IO Location |
| `sdk_io_list_files` | List files with optional glob/regex filtering |
| `sdk_io_discover_files` | Discover file metadata (format, stem type, timing) |
| `sdk_get_source` | Get SDK Python source for a module or symbol |
| `sdk_search_source` | Full-text search across SDK Python source |
| `sdk_validate_code` | Static validation of Python/SDK code |
| `sdk_dry_run_code` | Sandboxed execution with Job.run blocked |

## MCP Prompts (3)

| Prompt | Description |
|--------|-------------|
| `sdk_build_job` | Step-by-step guide to build a Coda job |
| `sdk_modify_workflow` | Guide to modify existing workflows |
| `sdk_troubleshoot` | Debug SDK issues systematically |

## Configuration

| Variable | Default | Description |
|----------|---------|-------------|
| `CODA_SDK_MCP_CODA_API_TOKEN` | — | Coda API token (required for live data/dry-run) |
| `CODA_SDK_MCP_CODA_BASE_URL` | https://v2.coda.sprocket.systems | Coda API URL |
| `CODA_SDK_MCP_LOG_LEVEL` | info | Log level |
| `CODA_SDK_MCP_LOG_FILE` | — | Optional log file path (rotated at 10 MB) |
| `CODA_SDK_MCP_TRANSPORT` | stdio | Transport: `stdio` (default) or `http` |

Docs, examples, search, and static validation work without a token.
Live data tools (`sdk_list_presets`, `sdk_list_groups`, `sdk_list_io_locations`, `sdk_io_list_folders`, `sdk_io_list_files`, `sdk_io_discover_files`) and `sdk_dry_run_code` require `CODA_SDK_MCP_CODA_API_TOKEN`.
