Toneden for AI agents

ToneDen automates social ad campaigns and landing pages, used mainly by music promoters and event organizers looking to grow their audience. Connect it once through Arc0, and your agent, or Claude, ChatGPT and Cursor, can use it through one MCP endpoint, limited to what each user approved.

Social mediaOAuth 2.0MCP + RESTtoneden.io
AUDIT LOG · TONEDENPOLICY: acme-support
09:41:07 · claude · u_8f2read
toneden.list_user_lists
List User Lists✓ allowed · 212ms
09:41:08 · claude · u_8f2read
toneden.get_link
Get Link✓ allowed · 164ms
09:41:09 · claude · u_8f2write
toneden.create_link
Create ToneDen Link✓ approved · approved by user
09:41:12 · claude · u_8f2destructive
toneden.delete_link
Delete ToneDen Link✕ blocked · policy: deny
EVERY TONEDEN CALL, ON THE RECORD
01 · USE CASES

What agents do in Toneden.

01

Get insights on a campaign

Pull performance metrics for an advertising campaign, a read-only report.

02

Create a ToneDen link

Generate a trackable link for a release or event to share across channels.

03

Confirm before deleting a campaign

Check with the user before deleting an advertising campaign, since its history and spend data go with it.

02 · ACTIONS

26 Toneden actions, graded by risk.

Every Toneden action is tagged read, write or destructive, so one policy covers the whole app and new actions inherit the right default.

read

16

Look things up. Allowed by default.

  • toneden.get_link
    Get Link
  • toneden.get_user
    Get ToneDen User
  • toneden.get_attachment
    Get Attachment
  • toneden.list_user_lists
    List User Lists
  • toneden.get_link_insights
    Get Link Insights
  • toneden.list_user_attachments
    List User Attachments
  • toneden.list_playbook_campaigns
    List ToneDen Playbook Campaigns
  • toneden.get_advertising_campaign
    Get Advertising Campaign
  • toneden.get_link_insights_overview
    Get Link Insights Overview
  • toneden.get_attachment_entries_totals
    Get Attachment Entries Totals
  • toneden.get_advertising_campaign_insights
    Get Advertising Campaign Insights
  • toneden.get_attachment_entries_time_series
    Get Attachment Entries Time Series
  • toneden.get_attachment_unlocks_by_platform
    Get Attachment Unlocks By Platform
  • toneden.get_attachment_unlocks_time_series
    Get Attachment Unlocks Time Series
  • toneden.get_advertising_campaign_creative_insights
    Get Advertising Campaign Creative Insights
  • toneden.validate_link_path
    Validate Link Path

write

7

Create and change things. Allow, or ask the user first.

  • toneden.create_link
    Create ToneDen Link
  • toneden.update_user
    Update ToneDen User
  • toneden.create_attachment
    Create Attachment
  • toneden.update_attachment
    Update Attachment
  • toneden.update_playbook_campaign
    Update ToneDen Playbook Campaign
  • toneden.create_advertising_campaign
    Create Advertising Campaign
  • toneden.expand_link_template
    Expand ToneDen Link Template

destructive

3

Delete, cancel or archive. Ask first, or deny outright.

  • toneden.delete_link
    Delete ToneDen Link
  • toneden.delete_playbook_campaign
    Delete ToneDen Playbook Campaign
  • toneden.delete_advertising_campaign
    Delete Advertising Campaign
03 · HOW IT WORKS

Toneden in three steps.

  1. 01Your users connect TonedenThey sign in to Toneden on Arc0 Connect, under your brand, and approve the access you ask for.
  2. 02You set the rulesReads run, writes like “create ToneDen Link” can wait for the user, and “delete ToneDen Link” can be denied outright.
  3. 03Any agent can actYour agent calls Toneden through the Arc0 SDK or MCP, and so can Claude, ChatGPT and Cursor. Every call lands on the audit log.
POLICY.TS
await arc0.policies.set('toneden', {
  read: 'allow',
  write: 'ask',        // create_link
  destructive: 'deny',  // delete_link
})

# Claude Code: the same connection, one URL
$ claude mcp add --transport http arc0 \
    https://mcp.arc0.ai/u/u_8f2
04 · AUTH AND DATA

How Toneden connects.

Users sign in to Toneden on Arc0 Connect and approve the scopes you request. Build with Arc0’s Toneden OAuth app, or bring your own so the Toneden consent screen names you. Tokens refresh automatically, and you can export them whenever you want.

The same Toneden connection serves your agent over MCP and your own backend over REST and the proxy, so a user connects once. How Arc0 handles credentials →

AUTH
API key · OAuth 2.0
CREDENTIALS
Per-tenant encrypted vault
MODEL SEES
Results only, never credentials
AUDIT LOG
Every call, on every plan
05 · WORKS WITH

Use Toneden from any agent.

Claude
ChatGPT
Cursor
Codex
VS Code
OpenAI Agents SDK
Claude Agent SDK
Vercel AI SDK
Mastra
LangGraph
07 · FAQ

Toneden and Arc0, answered.

Q01

Can I use Toneden with Claude, ChatGPT or Cursor?

Yes. Connect Toneden to Arc0 once, then add your Arc0 MCP URL to Claude, ChatGPT, Cursor, Claude Code or any other remote-MCP client. Each assistant only gets the Toneden actions you allow.

Q02

How do users connect Toneden?

Users sign in to Toneden on Arc0 Connect and approve the scopes you request. Build with Arc0’s Toneden OAuth app, or bring your own so the Toneden consent screen names you. Tokens refresh automatically, and you can export them whenever you want.

Q03

Which Toneden actions can my agent take?

26 in total: 16 read, 7 write and 3 destructive, such as “create ToneDen Link”. Your policies decide which of them each agent may call.

Q04

Can I stop my agent from deleting things in Toneden?

Yes. Actions like “delete ToneDen Link” are graded destructive. Set destructive actions to deny, or to ask so the user approves each one, and blocked calls still show up on the audit log.

Q05

Can my own backend call Toneden too?

Yes. The same Toneden connection is available over REST and through the Arc0 proxy, so your product and your agent share one connection per user.

Get started

Plug Toneden into your agent.

Your users connect Toneden once, under your brand. Your agent gets 26 actions behind your policies, with every call on the record.

Free to build · MCP + REST · Audit log on every plan