# mcp.daisycon.com

> 3 MCP server(s) over Streamable HTTP, each wrapping a different part of the Daisycon API and authorized separately: connect to the ones you need, one at a time.

󠀠

**Connection**

---

Every server speaks JSON-RPC 2.0 over a single POST endpoint. A server requiring OAuth registers its client dynamically, so no client ID has to be configured in advance: approve the authorization prompt the first time it connects. An anonymous server needs no credential at all.

Primary protocol version `2026-07-28` needs no `initialize` handshake: each request carries its own version, identity and capabilities in `params._meta`. The legacy revisions `2025-11-25`, `2025-06-18`, `2025-03-26`, `2024-11-05` are also accepted, and a client speaking one negotiates it through `initialize`.

󠀠

**Clients**

---

**Claude Code and Claude Desktop**

```json
{
    "mcpServers": {
        "daisycon-advertiser": {
            "type": "http",
            "url": "https://mcp.daisycon.com/advertiser/mcp"
        },
        "daisycon-publisher": {
            "type": "http",
            "url": "https://mcp.daisycon.com/publisher/mcp"
        },
        "daisycon-campaigns": {
            "type": "http",
            "url": "https://mcp.daisycon.com/campaigns/mcp"
        }
    }
}
```

Or, one server at a time:

```bash
claude mcp add --transport http daisycon-advertiser https://mcp.daisycon.com/advertiser/mcp
claude mcp add --transport http daisycon-publisher https://mcp.daisycon.com/publisher/mcp
claude mcp add --transport http daisycon-campaigns https://mcp.daisycon.com/campaigns/mcp
```

󠀠
**OpenAI Responses API**

```json
{
    "tools": [
        {
            "type": "mcp",
            "server_label": "daisycon-advertiser",
            "server_url": "https://mcp.daisycon.com/advertiser/mcp"
        },
        {
            "type": "mcp",
            "server_label": "daisycon-publisher",
            "server_url": "https://mcp.daisycon.com/publisher/mcp"
        },
        {
            "type": "mcp",
            "server_label": "daisycon-campaigns",
            "server_url": "https://mcp.daisycon.com/campaigns/mcp"
        }
    ]
}
```

󠀠
**Google ADK**

```python
McpToolset(connection_params=StreamableHTTPConnectionParams(url="https://mcp.daisycon.com/advertiser/mcp"))
McpToolset(connection_params=StreamableHTTPConnectionParams(url="https://mcp.daisycon.com/publisher/mcp"))
McpToolset(connection_params=StreamableHTTPConnectionParams(url="https://mcp.daisycon.com/campaigns/mcp"))
```

## MCP servers

- [Daisycon - Advertiser (MCP server)](https://mcp.daisycon.com/advertiser/llms.txt): Daisycon Advertiser MCP - programs, leads, financials, integrations. `POST https://mcp.daisycon.com/advertiser/mcp` - OAuth 2.1 (PKCE S256, dynamic client registration) - scopes `advertiser.read`, `advertiser.write` - tools: 346 (3 custom)
- [Daisycon - Publisher (MCP server)](https://mcp.daisycon.com/publisher/llms.txt): Daisycon Publisher MCP - campaigns, media, statistics, transactions. `POST https://mcp.daisycon.com/publisher/mcp` - OAuth 2.1 (PKCE S256, dynamic client registration) - scopes `publisher.read`, `publisher.write` - tools: 231 (6 custom)
- [Daisycon - Campaigns (MCP server)](https://mcp.daisycon.com/campaigns/llms.txt): Public Daisycon Campaign Search MCP - no authentication required. `POST https://mcp.daisycon.com/campaigns/mcp` - no authentication - scopes `campaigns.read` - tools: 2 (1 custom)

## Authorization

- [Authorization server metadata](https://mcp.daisycon.com/.well-known/oauth-authorization-server): OAuth 2.1, authorization code with PKCE (S256) and dynamic client registration, one authorization server for the whole deployment
- [Daisycon - Advertiser protected resource metadata](https://mcp.daisycon.com/.well-known/oauth-protected-resource/advertiser/mcp): RFC 9728, the authorization server to use for this endpoint, and the scopes it issues
- [Daisycon - Publisher protected resource metadata](https://mcp.daisycon.com/.well-known/oauth-protected-resource/publisher/mcp): RFC 9728, the authorization server to use for this endpoint, and the scopes it issues

## Optional

- [llms-full.txt](https://mcp.daisycon.com/llms-full.txt): every server's full tool reference in one document
- [mcp.json](https://mcp.daisycon.com/mcp.json): this directory as JSON (endpoint, transport, authentication and scopes per server)
- [changelog.txt](https://mcp.daisycon.com/changelog.txt): what changed in this deployment, newest first
