# Monoplan developer documentation

Monoplan publishes read-only product information for developers and AI agents: plans, integrations and guides.

The public endpoints on this page never return customer workspace data such as employees or schedules.

## Authentication

The REST API and the public MCP server need no authentication, API key or account, and are read-only.

## REST API

Base URL: `https://monoplan.io/api/v1`

The [OpenAPI specification](https://monoplan.io/openapi.json) describes each data endpoint and its responses.

| Endpoint | Returns | Parameters |
| --- | --- | --- |
| `GET /api/v1/plans` | Plans and prices | `locale` |
| `GET /api/v1/integrations` | Payroll and point-of-sale integrations | `locale`, `category` |
| `GET /api/v1/guides` | Workforce-planning guides | `locale`, `query`, `limit` |

`locale` is `en` (default) or `da`.

### Example requests

```bash
curl "https://monoplan.io/api/v1/plans?locale=en"
curl "https://monoplan.io/api/v1/integrations?category=payroll"
curl "https://monoplan.io/api/v1/guides?query=break%20rules&limit=3"
```

### Example response

```json
{
  "guides": [
    {
      "title": "Break rules at work in Denmark",
      "url": "https://monoplan.io/guides/break-rules-at-work-in-denmark"
    }
  ]
}
```

### Rate limits

The REST API and the public MCP server allow about 60 requests per minute per IP address, applied per Cloudflare location. Responses carry `RateLimit-Limit` and `RateLimit-Policy` headers. Above the limit you get HTTP 429 with a `Retry-After` header in seconds.

### Versioning and deprecation

The API version is part of the URL. Within `v1` we only add fields and endpoints. Breaking changes ship in a new version.

A deprecated version or endpoint keeps working for at least 90 days after it is announced on this page. Its responses carry `Deprecation` and `Sunset` headers during that period.

### Errors

Invalid parameters return HTTP 400:

```json
{ "error": { "code": "invalid_parameter", "message": "locale must be \"en\" or \"da\"" } }
```

## MCP server

Connect a Model Context Protocol client that supports Streamable HTTP to `https://monoplan.io/mcp`. No sign-in is needed.

| Tool | Purpose |
| --- | --- |
| `get_pricing_plans` | Current plans and prices |
| `list_integrations` | Payroll and point-of-sale integrations |
| `search_guides` | Search workforce-planning guides |

```bash
claude mcp add --transport http monoplan https://monoplan.io/mcp
```

## Customer MCP connection

Customers can connect their own AI agent to their workspace at `https://app.monoplan.io/mcp`. It is separate from the public server above.

- Sign in with OAuth using your own Monoplan account. The agent gets your existing permissions and can change the schedule and other data directly.
- An administrator turns it on in settings. It requires access to Viggo.
- Data the agent reads is sent to the AI provider you connect.

### Connect in Claude

1. In Claude, open Settings → Connectors and choose Add custom connector.
2. Enter `https://app.monoplan.io/mcp` as the URL.
3. Choose Connect and sign in with your Monoplan account.

On Claude Team and Enterprise plans, an owner adds the connector for the organization, and members then connect and sign in.

Other clients that support Streamable HTTP and OAuth connect to the same URL. With Claude Code, add the server and then run `/mcp` in Claude Code to sign in:

```bash
claude mcp add --transport http monoplan-workspace https://app.monoplan.io/mcp
```

### Tools

The tool list only shows the tools your permissions allow. Read tools never change data. Write tools change data at once. They are marked as destructive so your client can ask for your approval before it runs them.

| Area | Read | Write |
| --- | --- | --- |
| Workspaces | `list_organizations` | |
| Schedule | `list_shifts`, `get_coverage`, `get_planning_rules`, `list_reference_data`, `list_employees` | `create_shifts`, `update_shifts`, `delete_shifts` |
| Employees | `get_employees` | `create_employees`, `update_employees`, `deactivate_employees`, `reactivate_employees`, `invite_members` |
| Hours | `get_hours` | |
| Agent changes | `list_recent_agent_changes` | `undo_agent_change` |
| Settings and other app operations | `list_app_operations`, `read_app_operation` | `write_app_operation` |

`list_app_operations` lists the operations your role can run, with their arguments. Run a read operation with `read_app_operation` and a write operation with `write_app_operation`.

## Other formats

- Send `Accept: text/markdown` to the homepage, pricing, integrations or this page for Markdown.
- [Every feature by plan](https://monoplan.io/pricing.md) and [integration status](https://monoplan.io/integrations.md) are also available as Markdown files.
- [llms.txt](https://monoplan.io/llms.txt) gives an overview of the website.

## Support

Write to [support@monoplan.dk](mailto:support@monoplan.dk).
