目录 / Syncro
MCP
鉴权未知
未评级
已上架
Syncro
该来源不提供完整文件导出(国内平台多为平台内托管),仅存元数据与原链
接入信息
- 传输形态
- http
- 鉴权方式
- 鉴权未知
- 端点
https://syncro--rich-dean.run.tools
鉴权方式未标注,请核对官方文档后再接入——不要直接使用以下片段
{
"mcpServers": {
"Syncro": {
"url": "https://syncro--rich-dean.run.tools"
}
}
}
能力清单
| 工具 | 说明 |
|---|---|
| create_alert | Create an RMM alert for a customer. NOT idempotent — a retry creates a duplicate alert, so dedupe before retrying. Example: create_alert({ customer_id: 5, description: 'Disk almost full', formatted_output: 'C: at 95%' }). Requires scope: mcp-server. |
| get_alert | Get a single RMM alert by its Syncro alert id. Read-only. Example: get_alert({ alert_id: 5 }). Requires scope: mcp-server. |
| list_alerts | List RMM alerts, optionally filtered by asset or status. Read-only. Example: list_alerts({ asset_id: 5, status: 'active' }). Requires scope: mcp-server. |
| create_appointment | Create an appointment over a start/end window. NOT idempotent — a retry creates a duplicate appointment, so dedupe before retrying. Example: create_appointment({ summary: 'On-site visit', start_at: '2026-07-01T15:00:00Z', end_at: '2026-07-01T16:00:00Z', customer_id: 5 }). Requires scope: mcp-server. |
| get_appointment | Get a single appointment by its Syncro appointment id. Read-only. Example: get_appointment({ appointment_id: 5 }). Requires scope: mcp-server. |
| list_appointments | List appointments, optionally filtered by date range. When date_from/date_to are omitted the API defaults to roughly the last week through two months ahead, so pass an explicit range to look outside that window. Read-only. Example: list_appointments({ date_from: '2026-01-01', date_to: '2026-03-31' }). Requires scope: mcp-server. |
| update_appointment | Update fields on an existing appointment. NOT idempotent in effect — a retry re-applies the same field changes. Example: update_appointment({ appointment_id: 3, start_at: '2026-07-01T16:00:00Z' }). Requires scope: mcp-server. |
| create_asset | Create an asset under a customer. Provide either asset_type_name or asset_type_id. NOT idempotent — a retry creates a duplicate asset, so dedupe before retrying. Example: create_asset({ customer_id: 5, name: 'Front desk PC', asset_type_name: 'Computer' }). Requires scope: mcp-server. |
| get_asset | Get a single customer asset by its Syncro asset id. Read-only. Example: get_asset({ asset_id: 5 }). Requires scope: mcp-server. |
| list_assets | List customer assets, optionally filtered by customer, asset type, SNMP status, or a free-text query. Read-only. Example: list_assets({ customer_id: 5, asset_type_id: 2 }). Requires scope: mcp-server. |
| update_asset | Update fields on an existing asset. NOT idempotent in effect — a retry re-applies the same field changes. Example: update_asset({ asset_id: 12, name: 'Reception PC' }). Requires scope: mcp-server. |
| create_contact | Create a contact under a customer. NOT idempotent — a retry creates a duplicate contact, so dedupe before retrying. Example: create_contact({ customer_id: 5, name: 'Grace Hopper', email: 'grace@example.com' }). Requires scope: mcp-server. |
| get_contact | Get a single contact by its Syncro contact id. Read-only. Example: get_contact({ contact_id: 5 }). Requires scope: mcp-server. |
| list_contacts | List contacts, optionally filtered by customer. Read-only. Example: list_contacts({ customer_id: 5 }). Requires scope: mcp-server. |
| update_contact | Update fields on an existing contact. NOT idempotent in effect — a retry re-applies the same field changes. Example: update_contact({ contact_id: 9, phone: '555-0167' }). Requires scope: mcp-server. |
| create_customer | Create a customer. NOT idempotent — a retry creates a duplicate customer, so dedupe before retrying (e.g. search by email first). Example: create_customer({ firstname: 'Ada', lastname: 'Lovelace', email: 'ada@example.com', phone: '555-0100' }). Requires scope: mcp-server. |
| get_customer | Get details of a single customer by id. Read-only. Example: get_customer({ customer_id: 5 }). Requires scope: mcp-server. |
| list_customers | List customers, optionally filtered by name, email, or free-text query. Read-only. Example: list_customers({ query: 'Acme', include_disabled: false }). Requires scope: mcp-server. |
| update_customer | Update fields on an existing customer. NOT idempotent in effect — a retry re-applies the same field changes. Example: update_customer({ customer_id: 5, phone: '555-0142' }). Requires scope: mcp-server. |
| get_docs_article | Fetch the full text of one Syncro documentation article as markdown, for quoting exact step-by-step instructions. Use after search_docs, passing a result's url, and cite the article URL in your answer. Read-only. Example: get_docs_article({ url: '/creating-tickets/create-ticket-manual' }). Requires scope: mcp-server. |
| search_docs | Search the official Syncro product documentation for how-to guides, feature explanations, and setup/configuration instructions. ALWAYS use this instead of answering from memory when the user asks how to do something in Syncro, where a setting lives, or how a feature works. Returns ranked snippets with links. The snippets are short previews, NOT the answer: to answer a how-to question you MUST then call get_docs_article on the best match's url to read the full step-by-step content, and cite that url. Never answer from a snippet alone or hand the user a bare link. If this tool errors, tell the user the documentation is temporarily unavailable rather than guessing. Read-only. Example: search_docs({ query: 'create ticket manually' }). Requires scope: mcp-server. |
| list_invoices_by_amount | List invoices whose total falls within an amount range (inclusive). The API has no amount filter, so every invoice is fetched (all pages) and filtered on `total` here, returning the complete matching set. Read-only. Example: list_invoices_by_amount({ min_amount: 100, max_amount: 500 }). Requires scope: mcp-server. |
| list_invoices_by_status | List invoices by payment status ('paid', 'unpaid', or 'all') across every page (the complete set, not a single page). Read-only. Example: list_invoices_by_status({ status: 'unpaid' }). Requires scope: mcp-server. |
| create_invoice | Create an invoice for a customer. NOT idempotent — a retry creates a duplicate invoice, so dedupe before retrying. Example: create_invoice({ customer_id: 5, date: '2026-07-01' }). Requires scope: mcp-server. |
| list_customer_invoices | List all invoices for a specific customer across every page (the complete set, not a single page). Read-only. Example: list_customer_invoices({ customer_id: 5 }). Requires scope: mcp-server. |
| email_invoice | Email an existing invoice to the customer. Success means the email was queued for sending upstream, NOT that it was delivered. NOT idempotent — a retry sends another email, so dedupe before retrying. Example: email_invoice({ invoice_id: 20 }). Requires scope: mcp-server. |
| get_invoice | Get a single invoice by its invoice id. Read-only. Example: get_invoice({ invoice_id: 42 }). Requires scope: mcp-server. |
| add_invoice_line_item | Add a line item to an existing invoice. NOT idempotent — a retry adds a duplicate line item, so dedupe before retrying. Example: add_invoice_line_item({ invoice_id: 20, item: 'CABLE', name: 'CAT6 Cable', quantity: 2, price: 9.99 }). Requires scope: mcp-server. |
| list_invoices | List invoices, returned newest first (by id). This is the default, general invoice-listing tool — use it for browsing or for the most recent invoices unless a more specific view is required. Optionally filtered by customer, ticket, paid/unpaid state, or date. Read-only. Example: list_invoices({ customer_id: 5, unpaid: true }). Requires scope: mcp-server. |
| list_overdue_invoices | List unpaid invoices that are past their due date. Every unpaid invoice is fetched (all pages) and filtered here, returning the complete overdue set. Read-only. Example: list_overdue_invoices(). Requires scope: mcp-server. |
| list_paid_invoices | List all paid invoices across every page (the complete set, not a single page). Read-only. Example: list_paid_invoices(). Requires scope: mcp-server. |
| print_invoice | Queue an existing invoice for printing. Success means the print job was queued upstream, NOT that anything was printed. NOT idempotent — a retry queues another print job, so dedupe before retrying. Example: print_invoice({ invoice_id: 20 }). Requires scope: mcp-server. |
| update_invoice | Update fields on an existing invoice. NOT idempotent in effect — a retry re-applies the same field changes. Example: update_invoice({ invoice_id: 20, note: 'Net 30 terms' }). Requires scope: mcp-server. |
| get_current_user | Get information about the current user (the authenticated account), including name, email, user id, admin flag, subdomain, and permissions. Read-only. Example: get_current_user(). Requires scope: mcp-server. |
| list_users | List the users in the account as [id, name] pairs. Users are the staff members (technicians), so this is also how to list technicians; returns enabled users only. The index currently returns every enabled user in a single page, so one call is usually enough. Use it to resolve the user_id accepted by tools such as list_tickets. Read-only. Example: list_users(). Requires scope: mcp-server. |
| create_product | Create a product in the catalog. NOT idempotent — a retry creates a duplicate product, so dedupe before retrying. Example: create_product({ name: 'CAT6 Cable', price_retail: 9.99 }). Requires scope: mcp-server. |
| get_product | Get a single product by its product id. Read-only. Example: get_product({ product_id: 5 }). Requires scope: mcp-server. |
| list_products | List products, optionally filtered by category or a free-text search. Read-only. Example: list_products({ query: 'laptop', category_id: 3 }). Requires scope: mcp-server. |
| update_product | Update fields on an existing product. NOT idempotent in effect — a retry re-applies the same field changes. Example: update_product({ product_id: 8, price_retail: 12.5 }). Requires scope: mcp-server. |
| search | Search the SyncroMSP global search API (GET /search) across multiple entity types: tickets, customers, assets, invoices, products, contacts. Read-only. Example: search({ query: 'acme' }). Requires scope: mcp-server. |
| add_ticket_comment | Add a comment (timeline note) to an existing ticket. A non-hidden comment may email the customer, but whether it does depends on account and customer settings this tool can't see, and the response doesn't confirm delivery — so don't tell the user the customer was emailed. NOT idempotent — a retry adds a duplicate comment, so dedupe before retrying. Example: add_ticket_comment({ ticket_id: 42, subject: 'Update', body: 'Replaced the toner cartridge.' }). Requires scope: mcp-server. |
| create_ticket | Create a ticket for a customer. The `body` becomes the ticket's Issue Description (stored as the initial 'Initial Issue' comment), not a public reply — use add_ticket_comment for later timeline comments. Creating a ticket does not reliably email the customer (the initial comment is subject to the account's ticket-creation email default), so don't promise customer email from this tool. NOT idempotent — a retry creates a duplicate ticket, so dedupe before retrying (e.g. confirm no matching open ticket first). Example: create_ticket({ customer_id: 5, subject: 'Printer offline', body: 'HP on the 3rd floor will not print.' }). Requires scope: mcp-server. |
| get_ticket | Get a single ticket by its ticket id (the database id, not the ticket number). Read-only. Example: get_ticket({ ticket_id: 5 }). Requires scope: mcp-server. |
| list_tickets | List tickets, optionally filtered by customer, assignee, status, ticket number, created/resolved/updated timestamps, or a free-text search across the subject. Read-only. Example: list_tickets({ customer_id: 5, status: 'Not Closed' }) or list_tickets({ query: 'Iphone' }). Requires scope: mcp-server. |
| add_timer_entry | Add a worked-time timer entry to a ticket. Requires a start/end window: when start_at is omitted it defaults to now, and when neither end_at nor duration_minutes is given the end is derived from hours. NOT idempotent — a retry adds a duplicate timer entry, so dedupe before retrying. Example: add_timer_entry({ ticket_id: 42, hours: 1.5, description: 'On-site repair.' }). Requires scope: mcp-server. |
| update_ticket | Update fields on an existing ticket, such as status, priority, assignment, scheduling, tags, or custom field values. NOT idempotent — a retry re-applies the field changes. Example: update_ticket({ ticket_id: 42, status: 'Resolved' }). Requires scope: mcp-server. |
纠错与举报(发现条目失效、署名有误或涉及侵权?)
提交举报 / 纠错
侵权举报经核验成立后,我们会即时下线该条目并删除已存的内容副本。