Use TokPortal from Mastra
Connect Mastra to the TokPortal MCP server and run 12 social-media jobs: create TikTok/Instagram accounts, post at scale, warm accounts, ban webhooks, a…
Mastra is an agent framework (code): TypeScript agent framework; MCPClient from @mastra/mcp connects HTTP or stdio MCP servers and hands their tools to an Agent. Connected to the TokPortal MCP server (or the REST API), it can create geo-targeted TikTok and Instagram accounts, schedule videos, warm accounts, read analytics and follow the ban lifecycle — 91 tokportal_* tools generated from the public OpenAPI schema.
Connect TokPortal to Mastra
npm i @mastra/core @mastra/mcp
import { Agent } from '@mastra/core/agent';
import { MCPClient } from '@mastra/mcp';
const mcp = new MCPClient({
servers: {
tokportal: {
url: new URL('https://app.tokportal.com/api/ext/mcp'),
requestInit: {
headers: { 'X-API-Key': process.env.TOKPORTAL_API_KEY! },
},
},
},
timeout: 30000,
});
export const socialOps = new Agent({
id: 'social-ops',
name: 'Social ops',
instructions: 'You operate TikTok and Instagram accounts through TokPortal tools. Quote credit costs before creating bundles.',
model: 'anthropic/claude-sonnet-4-5',
tools: await mcp.listTools(),
});
Tools are namespaced tokportal_tokportal_* (server name + tool name). Use mcp.listToolsets() to pass tools per request instead of at construction, and mcp.disconnect() on shutdown.
Snippet status: verified against Mastra's documentation (source).
Try it
Evaluate this workflow in the TokPortal sandbox only.
Use the remote MCP endpoint https://app.tokportal.com/api/ext/mcp or local tokportal-mcp 1.15.1 or later for write tools.
Verify the installed local version before using its write tools. Version 1.15.0 is unsafe for simulations.
If the local version is older or unknown, use the remote endpoint or authenticated REST
requests with X-TokPortal-Dry-Run: true instead.
For every non-GET MCP tool call, set dry_run: true as a top-level boolean beside body.
For every REST write in a workflow, send the X-TokPortal-Dry-Run: true header.
Use normal read tools for existing real objects. Do not GET or poll synthetic IDs,
and do not upload files to simulated upload URLs. Simulated objects have no cross-call memory.
Show credits_would_charge and verify credits_charged is 0 for each simulated write.
Do not execute any live write. Ask for my explicit GO before the first real write,
including bundle creation, which charges immediately. After GO, repeat creation
without dry_run and use the new real IDs; never reuse synthetic IDs in live requests.
await socialOps.generate("List accounts on Instagram in FR, then
tell me which have no video posted in the last 14 days using
tokportal_list_account_video_analytics.")
Try the workflow without spending
For this trial, use the remote MCP endpoint https://app.tokportal.com/api/ext/mcp, local tokportal-mcp 1.15.1 or later, or the REST API. Upgrade and restart an older local server first. Version 1.15.0 does not forward the dry-run header; do not use its write tools for a simulation. If you cannot verify the installed local version, use the remote endpoint or REST.
Use the sandbox for the first attempt. MCP write tools accept dry_run: true as a top-level argument, beside body; REST writes accept the X-TokPortal-Dry-Run: true header. Keep your usual authentication and scopes. Each simulated write validates the request and returns credits_would_charge with credits_charged: 0. Nothing is created or published.
Simulated IDs start with 00000000-0000-4000-8000-. Use them only in later dry-run writes. GET requests read real data, so skip publish-readiness checks and polling for synthetic IDs. Simulations have no cross-call memory and upload URLs are placeholders: do not upload files to them.
To run for real, review the returned price and confirm before the first live write. Bundle creation charges credits immediately; publishing hands the order to a manager. Repeat creation without dry-run mode and use the new real IDs for configuration and publishing. A synthetic ID cannot be reused in a live request.
Try a free account-creation request
Evaluate this workflow in the TokPortal sandbox only.
Use the remote MCP endpoint https://app.tokportal.com/api/ext/mcp or local tokportal-mcp 1.15.1 or later for write tools.
Verify the installed local version before using its write tools. Version 1.15.0 is unsafe for simulations.
If the local version is older or unknown, use the remote endpoint or authenticated REST
requests with X-TokPortal-Dry-Run: true instead.
For every non-GET MCP tool call, set dry_run: true as a top-level boolean beside body.
For every REST write in a workflow, send the X-TokPortal-Dry-Run: true header.
Use normal read tools for existing real objects. Do not GET or poll synthetic IDs,
and do not upload files to simulated upload URLs. Simulated objects have no cross-call memory.
Show credits_would_charge and verify credits_charged is 0 for each simulated write.
Do not execute any live write. Ask for my explicit GO before the first real write,
including bundle creation, which charges immediately. After GO, repeat creation
without dry_run and use the new real IDs; never reuse synthetic IDs in live requests.
Use the TokPortal MCP tools. Call tokportal_list_countries, then simulate tokportal_create_bundle with bundle_type account_only, platform tiktok and a country returned as available for new accounts. Show the returned credits_would_charge. If your connector is read-only, explain which scope is missing instead of making a live request.
Jobs you can run from Mastra
- Create TikTok accounts — Create geo-targeted TikTok accounts from Mastra with the TokPortal MCP tools: create_bundle → configure_bundle_account → publish_bundle → list_accounts.
- Post 100 TikTok videos a day — Post 100+ TikTok videos a day from Mastra: spread slots across ≥34 TokPortal bundles (3 videos/day/bundle cap), batch-configure, publish, track finalization.
- Run US TikTok accounts from abroad — Operate US TikTok accounts from anywhere with Mastra: TokPortal creates and posts on accounts held by US-based managers — no VPN, no US SIM, no per-account OAuth.
- Warm TikTok & Instagram accounts — Warm accounts on niche search terms from Mastra: generate_warming_terms → configure_bundle_warming_terms / rewarm_account, verified sessions, warming.* webhooks.
- Run a faceless TikTok channel — Run a faceless TikTok channel from Mastra: AI-generated clips → upload_video → 3 dated posts a day via batch_configure_bundle_videos, AI label on, human-operated account.
- Seed UGC across many accounts — Seed UGC from Mastra: the same creative on N geo-targeted TikTok/Instagram accounts via create_bundles_bulk, disclose_as_ads, per-account analytics.
- Seed a music sound on TikTok — Seed a TikTok sound from Mastra: many geo-targeted accounts posting with tiktok_sound_url on the same track, staggered dates, per-video analytics for the label.
- Launch an app with persona accounts — Launch an app with persona accounts from Mastra: several TikTok/Instagram characters, each a managed account with bio link, warming and a 30-day content plan.
- Run multi-client agency operations — Run an agency's TikTok/Instagram operations from Mastra: per-client external_ref, bulk account fleets, videos_only reposting, ban webhooks and per-client analytics exports.
- Get ban alerts via webhooks — Get TikTok/Instagram ban alerts from Mastra: create_webhook_endpoint for account.banned, ban_appeal.submitted, ban_resolution.decided; list_account_bans as source of truth.
- Pull analytics across all accounts — Pull TikTok/Instagram analytics across every managed account from Mastra: get_analytics_dashboard, get_analytics_series, list_account_video_analytics, CSV/HTML exports.
- Create Instagram accounts — Create geo-targeted Instagram accounts from Mastra with TokPortal: create_bundle platform=instagram → configure_bundle_account → publish_bundle; Reels, posts, carousels.
Other agents
Claude · Claude Code · ChatGPT · OpenAI Codex · Cursor · Windsurf · Cline · OpenClaw · Hermes Agent · Gemini CLI · Goose · Perplexity · Microsoft Copilot Studio · Factory Droid · n8n · Make · Zapier · Pipedream · Dify · Flowise · Langflow · CrewAI · LangChain · Vercel AI SDK
See also: MCP server · Getting started · Credits & Pricing.