Skip to main content
Glama
mcp-server-systemeio

mcp-server-systemeio

by snzeeee

mcp-server-systemeio

MCP Server for Systeme.io — manage your online business from Claude.

License: MIT MCP Compatible

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.

Related MCP server: GHL MCP Server

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 → 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

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):

{
  "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

Author

Built by snzeeee

License

MIT

Available Tools

18 tools
add_tag_to_contactA

Assign a tag to a contact. This can trigger automations in Systeme.io (e.g., adding to a campaign, enrolling in a course).

Inputs: contactId (required), tagId (required).

cancel_subscriptionA

Cancel a payment subscription. The subscription will end at the end of the current billing cycle.

Inputs: subscriptionId (required).

create_contactA

Create a new contact in Systeme.io with an email address, optional locale, and custom fields. This can trigger automations (e.g., enrolling in a course or campaign).

Inputs: email (required), locale, fields.

create_tagB

Create a new tag in Systeme.io. Tags help organize and segment contacts for campaigns and automations.

Inputs: name (required).

delete_contactB

Delete a contact from Systeme.io. Note: actual deletion may take several days for security reasons.

Inputs: contactId (required).

delete_tagA

Delete a tag from Systeme.io. This removes the tag from all contacts.

Inputs: tagId (required).

enroll_contact_in_courseB

Enroll a contact in an online course. You can grant full access, partial access (specific modules), or dripping content access.

Inputs: courseId (required), contactId (required), accessType (required), modules.

get_contactA

Get full details of a specific contact by their ID, including email, locale, custom fields, tags, and registration info.

Inputs: contactId (required).

list_contact_fieldsA

List all custom contact fields defined in your Systeme.io account (e.g., first_name, country, phone_number, and any custom fields you created).

Inputs: limit, startingAfter, order.

list_contactsA

List contacts in your Systeme.io account. Filter by email, tags, bounced/unsubscribed status, or registration date. Returns paginated results.

Inputs: email, tags, bounced, unsubscribed, +6 more.

list_coursesB

List all online courses in your Systeme.io school. Filter by active status or search by name.

Inputs: active, query, limit, startingAfter, +1 more.

list_enrollmentsA

List course enrollments. See which contacts are enrolled in which courses.

Inputs: limit, startingAfter, order.

list_subscriptionsA

List payment subscriptions for a specific contact. Shows active recurring payments.

Inputs: contactId (required), limit, startingAfter, order.

list_tagsB

List all tags in your Systeme.io account. Tags are used to segment and organize your contacts.

Inputs: query, limit, startingAfter, order.

remove_enrollmentB

Remove a contact's enrollment from a course.

Inputs: enrollmentId (required).

remove_tag_from_contactB

Remove a tag from a contact.

Inputs: contactId (required), tagId (required).

update_contactA

Update an existing contact's locale or custom fields. Uses merge-patch: only specified fields are changed.

Inputs: contactId (required), locale, fields.

update_tagB

Rename an existing tag.

Inputs: tagId (required), name (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    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
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables Claude to manage GoHighLevel CRM contacts, pipelines, and workflows through natural language commands.
      115 npm
      MIT
    • A
      license
      Not graded
      quality
      F
      maintenance
      Connects Claude to your Grinfi.io account, enabling management of contacts, automations, messages, and more through natural language.
      1
      MIT