For AI
agents

Sync is the CHNLSYNC advisor for business technology decisions: connectivity, phone systems, contact center, security, cloud. Any AI agent can call it. Sync never names a supplier and never quotes a price. A human broker reviews every recommendation before a supplier is disclosed, and users can continue in their workspace or request a broker callback with their consent. CHNLSYNC charges no buyer advisory fee for its supplier-paid brokerage service. Supplier services, equipment, installation and separately scoped work can carry charges.

MCP · streamable HTTPREST · OpenAPICopper data · CC BY 4.0Updated 2026-09-09

Quick start

Two things work with no credentials at all: the MCP endpoint and the public copper retirement route. The REST mirror of the advisor takes a per-consumer key (see Getting a key). Everything an agent can do here is bounded by the same rails a human gets in the Sync app.

What Sync is

Sync turns a plain-language description of what is not working — a copper retirement letter, a phone system at end of life, a renewal that feels expensive — into a structured case file, and keeps a living record of the buyer’s environment so nothing has to be re-explained. The trust rules are enforced in software, not in a prompt: no supplier is named until a human broker has reviewed the fit, and pricing is never generated by a model.

For an agent this means Sync is a tool you can hand your user’s situation to safely. It asks the right discovery questions, tells the user what to gather, and explains the decision path. When the user is ready for a human, the agent requests a callback with the user’s consent and a CHNLSYNC broker takes it from there. Each advisor reply also returns a claim_url; the user can take over the workspace at any point and continue in the Sync app at app.chnlsync.com, with everything gathered so far carried across.

CHNLSYNC receives supplier compensation for its brokerage service and charges no buyer advisory fee. Your service contract is with the supplier. You still pay for supplier services, and equipment, installation or separately scoped work can carry charges. Ask for the compensation model and a complete cost breakdown before choosing an option.

Endpoints

Check the live MCP discovery card for the running version and tool schemas. The continuation contract below applies to MCP 0.2.0 and later; REST already accepts conversation_id.

SurfaceURLAuth
MCP server https://mcp.chnlsync.com/mcp — streamable HTTP; three tools listed below None
REST mirror https://api.chnlsync.dev/api/v1/agent/ — sessions, chat, callback-request X-Agent-API-Key
Public copper route GET https://api.chnlsync.dev/api/v1/copper-retirement?carrier=&state= None
OpenAPI https://api.chnlsync.dev/openapi.json — authoritative for every field —
Interactive docs https://api.chnlsync.dev/docs —

Tools

REST mirror

The same three actions are plain HTTPS routes. Send your consumer key in X-Agent-API-Key; once a session exists, also send its token in X-Agent-Session-Token. Bodies and responses are JSON. The public copper route is the exception: no key, no session.

RoutePurposeHeaders
POST/api/v1/agent/sessions — create a provisional workspace (company_name, pain; optional domain, site_count, current_providers[], contract_end_dates)X-Agent-API-Key
POST/api/v1/agent/sessions/{id}/chat — one advisor turn (message; optional conversation_id)key + session token
POST/api/v1/agent/sessions/{id}/callback-request — consented broker callback (contact_name, contact_email)key + session token
GET/api/v1/copper-retirement?carrier=&state= — copper status, keylessnone

Create a session

curl -X POST https://api.chnlsync.dev/api/v1/agent/sessions \
  -H "X-Agent-API-Key: $CHNLSYNC_AGENT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"company_name":"Example Dental Group",
       "pain":"AT&T says our copper lines retire this year. Four offices, fax and alarm lines on POTS."}'

Ask the advisor

curl -X POST https://api.chnlsync.dev/api/v1/agent/sessions/$SESSION_ID/chat \
  -H "X-Agent-API-Key: $CHNLSYNC_AGENT_API_KEY" \
  -H "X-Agent-Session-Token: $SESSION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"message":"Which lines are at risk first, and what should we gather before talking to anyone?"}'

Response (sketch)

{
  "assistant_message": "Start with the lines that cannot fail: the fire panel and the elevator phone ...",
  "follow_up_questions": ["Which office received the letter?", "Do any lines carry a fax or alarm?"],
  "conversation_id": "89c56588-3e6a-4558-9b48-fca1960d86ae",
  "review_status": null,
  "claim_url": "https://app.chnlsync.com/portal?claim=...",
  "disclosure": "A human broker reviews every recommendation; supplier names and pricing come only after that review."
}

Continue the same conversation

Copy the conversation_id from the preceding reply. With REST, omitting it starts a new conversation. With MCP 0.2.0 and later, incomplete continuation handles are rejected before another workspace is created.

{
  "message": "The renewal date is October 31. What should we gather next?",
  "conversation_id": "89c56588-3e6a-4558-9b48-fca1960d86ae"
}

Example REST follow-up body; replace the illustrated ID with your returned ID. For MCP, include your returned session_id and session_token too. Credentials and claim links are private: never publish them or put them in analytics.

Recover missing handles from the prior reply. Do not automatically create a replacement workspace or retry a write after a timeout: the original request may already be recorded. Use the claim link or contact support if its outcome is unclear.

Request a callback (with consent)

curl -X POST https://api.chnlsync.dev/api/v1/agent/sessions/$SESSION_ID/callback-request \
  -H "X-Agent-API-Key: $CHNLSYNC_AGENT_API_KEY" \
  -H "X-Agent-Session-Token: $SESSION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"contact_name":"Dana Ortiz","contact_email":"dana@example.com"}'
# → {"status":"received","disclosure":"A human broker reviews every recommendation; ..."}

Copper status, no key

curl "https://api.chnlsync.dev/api/v1/copper-retirement?carrier=AT%26T&state=TX"
# → {"records":[{"carrier":"AT&T","state":"TX","status":"program_active", ...}],
#    "source":"FCC Section 214 discontinuance filings ...","source_url":"https://chnlsync.com/copper-retirement/","license":"CC BY 4.0"}

Status codes. 401 unknown or missing key. 404 unknown session, or the agent surface is closed. 422 the request was rejected by validation or by the safety guardrails; rephrase as a plain description and try again. 429 a limit was reached; see Limits.

Add Sync to your assistant

The official MCP registry entry was verified September 9, 2026. A registry entry does not establish availability in the Claude or ChatGPT directories. Direct connection depends on your client, account and workspace settings.

ClientHow
Claude For accounts with custom connectors: Settings → Connectors → Add custom connector, URL https://mcp.chnlsync.com/mcp.
Claude Code claude mcp add --transport http chnlsync https://mcp.chnlsync.com/mcp
ChatGPT Directory availability is not yet confirmed here. If your workspace supports custom MCP connections, use the endpoint above and follow your workspace’s administrator settings.
Cursor Add to .cursor/mcp.json: {"mcpServers":{"chnlsync":{"url":"https://mcp.chnlsync.com/mcp"}}}
Any MCP client Connect over streamable HTTP to https://mcp.chnlsync.com/mcp. No key. Tools are titled and annotated (read-only / non-destructive) so hosts can show the right prompts.

Getting a key

The MCP endpoint and the public copper route need no credentials. The REST mirror takes a per-consumer key so usage can be attributed and, if it ever has to be, revoked. Email agents@chnlsync.com with who you are, what your agent does, and the volume you expect. Keys are named per consumer and issued by a person, not a form.

Limits

Data and license

The copper retirement dataset is licensed CC BY 4.0. Reuse it freely with attribution: cite “CHNLSYNC Copper Retirement Tracker” and link to chnlsync.com/copper-retirement/; the source_url field carries that link for you. Sources, update cadence, and known limits are documented in the methodology.

Conversations are handled under the privacy policy and used to serve the buyer’s case, not to train public models. Contact details enter the system only through a consented callback request. Use of the API is governed by the terms of service.

What the tools will never do

The buyer-facing version of these rules: How we work

Common questions

Does the MCP endpoint require authentication?

No. It is a public streamable-HTTP endpoint. Usage is attributed by the connecting client’s name and every limit is enforced server-side, so there is nothing for an end user to configure. The REST mirror is the surface that takes a per-consumer key.

Can my agent get a price or a supplier shortlist?

No, by design. Sync never produces pricing and never names a supplier on its own. Both reach the buyer only after a human broker has reviewed the case, either inside the claimed workspace or on the callback. If your user needs a number today, the honest answer is to request the callback.

What happens after request_broker_callback?

A human broker at CHNLSYNC receives the request together with the case file and follows up with the user directly. Nothing else is triggered: no vendor is contacted, nothing is ordered, and the user’s details are not shared onward.

What is the claim_url for?

Every response carries a link that lets the user take over the provisional workspace in the Sync app at app.chnlsync.com. The facts gathered through your agent carry across, so the user never re-explains their setup. Claiming is also how a conversation continues past the 20-turn bound.

Is the copper retirement data free to reuse?

Yes. The dataset is licensed CC BY 4.0: reuse, redistribute, and build on it, with attribution to the CHNLSYNC Copper Retirement Tracker and a link. The same data powers the tracker, the map, and the embed feed.

Not an agent?

Send us the file, or ask Sync three questions with no login.