Skip to main content
Glama
snzeeee

mcp-server-systemeio

by snzeeee
README.md
# mcp-server-systemeio

MCP Server for [Systeme.io](https://systeme.io) — manage your online business from Claude.

![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)
![MCP Compatible](https://img.shields.io/badge/MCP-Compatible-blue.svg)

## What it does

Gives Claude direct access to your Systeme.io account — contacts, tags, courses, subscriptions, and more. Instead of switching between Claude and your Systeme.io dashboard, just ask in natural language: "show me my recent contacts", "tag this person as VIP", or "enroll them in my course".

Built for solopreneurs, freelancers, and creators who run their business on Systeme.io.

## Tools

| Tool | Description |
|------|-------------|
| `list_contacts` | List and filter contacts (by email, tags, status, date) |
| `get_contact` | Get full details of a contact |
| `create_contact` | Create a new contact with email, locale, and custom fields |
| `update_contact` | Update a contact's locale or custom fields |
| `delete_contact` | Delete a contact |
| `list_tags` | List all tags (with search) |
| `create_tag` | Create a new tag |
| `update_tag` | Rename a tag |
| `delete_tag` | Delete a tag |
| `add_tag_to_contact` | Assign a tag to a contact (can trigger automations) |
| `remove_tag_from_contact` | Remove a tag from a contact |
| `list_contact_fields` | List all custom contact fields |
| `list_courses` | List online courses in your school |
| `enroll_contact_in_course` | Enroll a contact in a course (full, partial, or dripping access) |
| `list_enrollments` | List all course enrollments |
| `remove_enrollment` | Remove a course enrollment |
| `list_subscriptions` | List payment subscriptions for a contact |
| `cancel_subscription` | Cancel a subscription |

## Quick Start

### 1. Get your API key

Go to your [Systeme.io dashboard](https://systeme.io) → **Profile** → **Public API keys** → Generate a new key.

> The free plan works! You get 2,000 contacts, 3 funnels, 1 course, and unlimited emails at no cost.

### 2. Install

```bash
git clone https://github.com/snzeeee/mcp-server-systemeio.git
cd mcp-server-systemeio
npm install
```

### 3. Configure

Add to your Claude Desktop config (`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS):

```json
{
  "mcpServers": {
    "systemeio": {
      "command": "node",
      "args": ["/path/to/mcp-server-systemeio/src/index.js"],
      "env": {
        "SYSTEMEIO_API_KEY": "your-api-key-here"
      }
    }
  }
}
```

On Windows, the config file is at `%APPDATA%\Claude\claude_desktop_config.json`.

### 4. Restart Claude Desktop

Close and reopen Claude Desktop. The Systeme.io tools will appear automatically.

## Examples

**"Show me my last 20 contacts"**
→ Claude calls `list_contacts` with limit 20 and returns a formatted list.

**"Find contacts tagged VIP"**
→ Claude calls `list_tags` to find the VIP tag ID, then `list_contacts` filtered by that tag.

**"Create a contact for john@example.com and tag them as Lead"**
→ Claude calls `create_contact`, then `add_tag_to_contact` to assign the tag.

**"Enroll contact #12345 in my course"**
→ Claude calls `list_courses` to find the course, then `enroll_contact_in_course`.

**"What courses do I have?"**
→ Claude calls `list_courses` and shows active courses with details.

## Requirements

- Node.js 18+
- [Systeme.io](https://systeme.io) account (free plan works)

## Author

Built by [snzeeee](https://github.com/snzeeee)

## License

MIT

TDQS

A3.7/5.0

Scored across 18 tools

Disambiguation5/5

Each tool targets a distinct resource-action pair (e.g., create_contact, delete_tag, enroll_contact_in_course). There is no overlap or ambiguity; all operations are clearly separated by entity and action.

Naming Consistency5/5

All tools use consistent snake_case with a verb_noun pattern. Verbs like create, list, update, delete, add, remove are used uniformly, and prepositions are used where needed (e.g., add_tag_to_contact).

Tool Count5/5

18 tools cover the core entities (contacts, tags, courses, subscriptions) with dedicated CRUD and specific actions. The count is well-scoped for the platform's domain without being excessive or insufficient.

Completeness3/5

While contacts and tags have full CRUD coverage, courses lack create, update, delete, and get operations beyond listing. This is a notable gap that could hinder course management workflows.

Maintenance

ActivityInactive
ResponsivenessNo issues