AgentStack
MCP verified Apache-2.0 Self-run

Syncro Mcp

mcp-wyre-technology-syncro-mcp · by wyre-technology

MCP server for Syncro MSP — tickets, assets, contacts, invoices, and RMM tools for AI assistants

No reviews yet
0 installs
16 views
0.0% view→install

Install

$ agentstack add mcp-wyre-technology-syncro-mcp

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

Are you the author of Syncro Mcp? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Syncro MCP Server

A Model Context Protocol (MCP) server for Syncro MSP, implementing a decision tree architecture for efficient tool navigation.

One-Click Deployment

[](https://cloud.digitalocean.com/apps/new?repo=https://github.com/wyre-technology/syncro-mcp/tree/main)

[](https://deploy.workers.cloudflare.com/?url=https://github.com/wyre-technology/syncro-mcp)

> Operator note — GitHub Packages authentication (required for one-click deploys). > This server depends on the private @wyre-technology/node-syncro SDK, which is > hosted on GitHub Packages. GitHub Packages requires an authentication token > on every install (no anonymous reads, even for public packages), so the cloud > builders fail during npm install with 401 Unauthorized unless you supply a > token. Create a GitHub Personal Access Token with the read:packages scope > and provide it to the builder: > > - Cloudflare Workers — set a build/environment variable named NODE_AUTH_TOKEN to your PAT. > - DigitalOcean App Platform — set a build-time secret named GITHUB_TOKEN to your PAT. > > For local npm install, run export NODE_AUTH_TOKEN=$(gh auth token) first.

Features

  • Decision Tree Architecture: Tools are organized by domain and loaded lazily
  • Domain Navigation: Navigate between customers, tickets, assets, contacts, and invoices
  • Lazy Loading: Domain handlers and the Syncro client are loaded on-demand
  • Full Syncro API Coverage: Access to key Syncro MSP functionality

Installation

> WYRE MCP servers are distributed via OCI/GHCR images and (where available) MCPB bundles. The npm package @wyre-technology/syncro-mcp is also published to GitHub Packages (npm.pkg.github.com); installing it requires an authenticated .npmrc with read:packages scope (run export NODE_AUTH_TOKEN=$(gh auth token) locally).

Option 1: WYRE MCP Gateway (Recommended)

Use the hosted gateway at mcp.wyre.ai — paste your Syncro API key into the gateway UI and you're done.

{
  "mcpServers": {
    "syncro": {
      "type": "http",
      "url": "https://mcp.wyre.ai/v1/syncro/mcp",
      "headers": {
        "X-Syncro-Api-Key": "${SYNCRO_API_KEY}"
      }
    }
  }
}

Option 2: Claude Code CLI (run from GitHub)

claude mcp add syncro \
  -e SYNCRO_API_KEY=your-api-key \
  -e SYNCRO_SUBDOMAIN=your-subdomain \
  -- npx -y github:wyre-technology/syncro-mcp

Option 3: Docker (GHCR)

docker run --rm \
  -e SYNCRO_API_KEY=your-api-key \
  -e SYNCRO_SUBDOMAIN=your-subdomain \
  ghcr.io/wyre-technology/syncro-mcp:latest

Option 4: From Source

git clone https://github.com/wyre-technology/syncro-mcp.git
cd syncro-mcp
npm ci
npm run build
node dist/index.js

Configuration

Set the following environment variables:

| Variable | Required | Description | |----------|----------|-------------| | SYNCRO_API_KEY | Yes | Your Syncro API key | | SYNCRO_SUBDOMAIN | No | Your Syncro subdomain (if applicable) |

Getting Your API Key

  1. Log in to your Syncro MSP account
  2. Navigate to Settings > API Tokens
  3. Generate a new API token with appropriate permissions

Architecture

Decision Tree Navigation

The server uses a hierarchical approach to tool discovery:

  1. Initial State: Only navigation and status tools are exposed
  2. After Navigation: Domain-specific tools become available
  3. Back Navigation: Return to the main menu to switch domains

This reduces cognitive load and improves LLM tool selection accuracy.

Available Domains

| Domain | Description | Tools | |--------|-------------|-------| | customers | Manage customer accounts | list, get, create, search | | tickets | Manage support tickets | list, get, create, update, add_comment | | assets | Manage configuration items | list, get, search | | contacts | Manage customer contacts | list, get, create | | invoices | View and manage billing | list, get, create, email |

Tools Reference

Navigation Tools

syncro_navigate

Navigate to a domain to access its tools.

{
  "domain": "customers" | "tickets" | "assets" | "contacts" | "invoices"
}
syncro_back

Return to the main menu from any domain.

syncro_status

Show current navigation state and credential status.

Customers Domain

syncrocustomerslist

List customers with optional filters.

{
  "query": "search term",
  "business_name": "Company Inc",
  "email": "contact@example.com",
  "include_disabled": false,
  "page": 1,
  "per_page": 25
}
syncrocustomersget

Get a specific customer by ID.

{
  "customer_id": 123
}
syncrocustomerscreate

Create a new customer.

{
  "business_name": "Acme Corp",
  "firstname": "John",
  "lastname": "Doe",
  "email": "john@acme.com"
}
syncrocustomerssearch

Search customers by query string.

{
  "query": "acme",
  "limit": 25
}

Tickets Domain

syncroticketslist

List tickets with optional filters.

{
  "customer_id": 123,
  "status": "Open",
  "user_id": 456,
  "resolved": false
}
syncroticketsget

Get a specific ticket by ID.

{
  "ticket_id": 789
}
syncroticketscreate

Create a new ticket.

{
  "customer_id": 123,
  "subject": "Network Issue",
  "problem_type": "Network",
  "comment_body": "Initial description"
}
syncroticketsupdate

Update an existing ticket.

{
  "ticket_id": 789,
  "status": "Resolved",
  "user_id": 456
}
syncroticketsadd_comment

Add a comment to a ticket.

{
  "ticket_id": 789,
  "body": "Comment text",
  "hidden": false
}

Assets Domain

syncroassetslist

List assets with optional filters.

{
  "customer_id": 123,
  "asset_type": "Desktop"
}
syncroassetsget

Get a specific asset by ID.

{
  "asset_id": 456
}
syncroassetssearch

Search assets by query or serial number.

{
  "query": "workstation",
  "asset_serial": "SN12345"
}

Contacts Domain

syncrocontactslist

List contacts with optional filters.

{
  "customer_id": 123,
  "query": "john"
}
syncrocontactsget

Get a specific contact by ID.

{
  "contact_id": 789
}
syncrocontactscreate

Create a new contact.

{
  "customer_id": 123,
  "name": "Jane Smith",
  "email": "jane@example.com"
}

Invoices Domain

syncroinvoiceslist

List invoices with optional filters.

{
  "customer_id": 123,
  "status": "sent",
  "since_date": "2024-01-01"
}
syncroinvoicesget

Get a specific invoice by ID.

{
  "invoice_id": 456
}
syncroinvoicescreate

Create a new invoice.

{
  "customer_id": 123,
  "due_date": "2024-02-01"
}
syncroinvoicesemail

Email an invoice to the customer.

{
  "invoice_id": 456,
  "subject": "Your Invoice"
}

Rate Limiting

Syncro API has a rate limit of 180 requests per minute. The underlying @wyre-technology/node-syncro library handles rate limiting automatically.

Development

# Install dependencies. The @wyre-technology/node-syncro SDK lives on GitHub
# Packages, so authenticate first:
export NODE_AUTH_TOKEN=$(gh auth token)
npm install

# Build
npm run build

# Run in development
npm run dev

# Type check
npm run typecheck

# Lint
npm run lint

License

Apache-2.0

Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.