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.
Quick start
$ claude mcp add --transport http chnlsync https://mcp.chnlsync.com/mcp # no key needed for the MCP endpoint $ curl "https://api.chnlsync.dev/api/v1/copper-retirement?carrier=AT%26T&state=TX" # keyless public route · FCC-sourced · CC BY 4.0 · cite source_url $
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.
| Surface | URL | Auth |
|---|---|---|
| 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
-
check_copper_retirementread-onlyCopper and POTS retirement program status by carrier and state, read from the CHNLSYNC dataset built on FCC Section 214 discontinuance filings and network change disclosures. Deterministic: no model in the loop, no session required.
- Inputs
carrier(display name such asAT&T,Lumen,Frontier; optional) ·state(two-letter abbreviation; optional). Omit both for the full dataset.- Returns
records[]withcarrier,state,status(program_activeordate_filed),retirement_date,notes; plussource,source_url,as_of(the static records’ date),latest_filings[](reviewed filings with their own dates and source links), andlicense(CC BY 4.0). Citesource_urlwhenever you use the data. A state-level program status is not an address-specific shutoff date; a null date means no date is established in this record.
-
ask_sync_advisorwrite · non-destructiveOne advisor turn on behalf of your user. The first call, with
company_nameandpain(what is not working, in the user’s own words), creates a private provisional workspace and returns its credentials. With MCP 0.2.0 and later, follow-up calls passsession_id,session_tokenandconversation_idback to continue the same conversation. Retain all three privately.- Inputs
message(required) ·session_id+session_token+conversation_idto continue ·company_name+painon the first call.- Returns
assistant_message,follow_up_questions[],conversation_id,review_status,claim_url, a fixeddisclosureline, and thesession_id/session_tokento keep. Replies never contain supplier names or pricing; those come only after a human broker review, through the claim link or a requested callback.
-
request_broker_callbackwrite · non-destructiveconsent requiredHands the case to a human broker. Call it only after the user has explicitly agreed to share their name and email with CHNLSYNC. It is the only call on this surface that carries contact details, and the terminal state of a conversation.
- Inputs
session_id,session_token,contact_name,contact_email.- Returns
status: "received",disclosureand an optionalbook_url. The request is recorded; this is not a confirmed appointment. A broker follows up directly. The user may use the booking link to choose a time, but booking is not required. No supplier order is placed.
-
Address-level lookupcomingAn address-level copper and fiber availability lookup, built on the FCC Broadband Data Collection, is in development. It will be read-only and will report filed availability, not a recommendation or a serviceability guarantee. This page and the OpenAPI document will change when it ships.
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.
| Route | Purpose | Headers |
|---|---|---|
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, keyless | none |
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.
| Client | How |
|---|---|
| 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
- 10 requests per minute per keyApplies to every route on the REST mirror. Over the limit returns
429; back off and retry. - A daily session budget per consumerEach key may open a bounded number of provisional workspaces per UTC day. Continue existing sessions rather than opening new ones.
- 20 advisor turns per provisional workspaceAfter that the user claims the workspace at the
claim_urland continues in the Sync app. Everything gathered so far carries over. - No ordering, no paymentNothing on this surface can buy, sign, or pay for anything. The only write that leaves the conversation is a consented callback request.
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
- Quote or estimate pricingReal numbers come only from actual supplier quotes after broker review.
- Name or recommend a specific supplier on their ownSupplier names reach the buyer only through an operator-approved disclosure with an audit trail.
- Contact a vendor, share the user’s information with one, or take any outbound action without explicit approval
- Order, sign, or pay for anything
- Collect contact details without consent
request_broker_callbackis the only call that carries a name and an email. Ask the user first, every time.
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.