Server data from the Official MCP Registry
MCP server for Syncro MSP — customers, tickets, assets, invoices, and more.
MCP server for Syncro MSP — customers, tickets, assets, invoices, and more.
The Syncro MCP server demonstrates solid security architecture with proper authentication via environment variables and gateway headers, appropriate permission scoping aligned with its MSP use case, and well-structured code with good error handling. Minor code quality concerns around input validation and error message specificity prevent a higher score, but no critical vulnerabilities are present. Supply chain analysis found 3 known vulnerabilities in dependencies (1 critical, 1 high severity).
7 files analyzed · 9 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
This plugin requests these system permissions. Most are normal for its category.
Set these up before or after installing:
Environment variable: SYNCRO_SUBDOMAIN
Environment variable: SYNCRO_API_KEY
Environment variable: MCP_TRANSPORT
Environment variable: AUTH_MODE
Environment variable: LOG_LEVEL
Add this to your MCP configuration file:
{
"mcpServers": {
"io-github-wyre-technology-syncro-mcp": {
"env": {
"AUTH_MODE": "your-auth-mode-here",
"LOG_LEVEL": "your-log-level-here",
"MCP_TRANSPORT": "your-mcp-transport-here",
"SYNCRO_API_KEY": "your-syncro-api-key-here",
"SYNCRO_SUBDOMAIN": "your-syncro-subdomain-here"
},
"args": [
"-y",
"@wyre-technology/syncro-mcp"
],
"command": "npx"
}
}
}From the project's GitHub README.
A Model Context Protocol (MCP) server for Syncro MSP, implementing a decision tree architecture for efficient tool navigation.
npm install @wyre-technology/syncro-mcp
Set the following environment variables:
| Variable | Required | Description |
|---|---|---|
SYNCRO_API_KEY | Yes | Your Syncro API key |
SYNCRO_SUBDOMAIN | No | Your Syncro subdomain (if applicable) |
Add to your claude_desktop_config.json:
{
"mcpServers": {
"syncro": {
"command": "npx",
"args": ["@wyre-technology/syncro-mcp"],
"env": {
"SYNCRO_API_KEY": "your-api-key"
}
}
}
}
docker build --secret id=npmrc,src=$HOME/.npmrc -t syncro-mcp .
docker run -e SYNCRO_API_KEY=your-api-key syncro-mcp
The server uses a hierarchical approach to tool discovery:
This reduces cognitive load and improves LLM tool selection accuracy.
| 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 |
Navigate to a domain to access its tools.
{
"domain": "customers" | "tickets" | "assets" | "contacts" | "invoices"
}
Return to the main menu from any domain.
Show current navigation state and credential status.
List customers with optional filters.
{
"query": "search term",
"business_name": "Company Inc",
"email": "contact@example.com",
"include_disabled": false,
"page": 1,
"per_page": 25
}
Get a specific customer by ID.
{
"customer_id": 123
}
Create a new customer.
{
"business_name": "Acme Corp",
"firstname": "John",
"lastname": "Doe",
"email": "john@acme.com"
}
Search customers by query string.
{
"query": "acme",
"limit": 25
}
List tickets with optional filters.
{
"customer_id": 123,
"status": "Open",
"user_id": 456,
"resolved": false
}
Get a specific ticket by ID.
{
"ticket_id": 789
}
Create a new ticket.
{
"customer_id": 123,
"subject": "Network Issue",
"problem_type": "Network",
"comment_body": "Initial description"
}
Update an existing ticket.
{
"ticket_id": 789,
"status": "Resolved",
"user_id": 456
}
Add a comment to a ticket.
{
"ticket_id": 789,
"body": "Comment text",
"hidden": false
}
List assets with optional filters.
{
"customer_id": 123,
"asset_type": "Desktop"
}
Get a specific asset by ID.
{
"asset_id": 456
}
Search assets by query or serial number.
{
"query": "workstation",
"asset_serial": "SN12345"
}
List contacts with optional filters.
{
"customer_id": 123,
"query": "john"
}
Get a specific contact by ID.
{
"contact_id": 789
}
Create a new contact.
{
"customer_id": 123,
"name": "Jane Smith",
"email": "jane@example.com"
}
List invoices with optional filters.
{
"customer_id": 123,
"status": "sent",
"since_date": "2024-01-01"
}
Get a specific invoice by ID.
{
"invoice_id": 456
}
Create a new invoice.
{
"customer_id": 123,
"due_date": "2024-02-01"
}
Email an invoice to the customer.
{
"invoice_id": 456,
"subject": "Your Invoice"
}
Syncro API has a rate limit of 180 requests per minute. The underlying @wyre-technology/node-syncro library handles rate limiting automatically.
# Install dependencies
npm install
# Build
npm run build
# Run in development
npm run dev
# Type check
npm run typecheck
# Lint
npm run lint
Apache-2.0
Be the first to review this server!
by Modelcontextprotocol · Developer Tools
Read, search, and manipulate Git repositories programmatically
by Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
by mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.
by Microsoft · Content & Media
Convert files (PDF, Word, Excel, images, audio) to Markdown for LLM consumption
by mcp-marketplace · Developer Tools
Scaffold, build, and publish TypeScript MCP servers to npm — conversationally
by Taylorwilsdon · Productivity
Control Gmail, Calendar, Docs, Sheets, Drive, and more from your AI