x-twitter.create_post
Publish a post to a connected X account via the official X API (POST /2/tweets). Call x-twitter.connected_accounts first. If accounts is empty, the user must connect an X account at https://vee3.io/dashboard/connections before posting. Agents cannot complete OAuth; ask the user to connect, then c...
This record as markdown: /tools/io-github-vee3io-vee3/x-twitter.create-post.md
What x-twitter.create_post does on Vee3
AI agents use x-twitter.create_post to create or update resources in Vee3, usually the action step of a workflow, after the agent has gathered context. Every call changes real data in your Vee3 environment.
| Parameter | Type | Required | Description |
|---|---|---|---|
poll | object | — | Poll object with options (2-4 strings) and duration_minutes (5-10080). |
text | object | — | Post text content. At least one of text, poll, media, or card_uri is required. |
media | array | — | File names from files.list_uploaded_files to attach (up to 4). Upload with files.upload_file and @vee3/upload first, then list_uploaded_files to get the stored |
user_id | object | — | Numeric X user id from x-twitter.connected_accounts. Pass user_id or user_name to target a specific account, not both. Omit both to use the default account. |
card_uri | object | — | Card URI for the post. Mutually exclusive with poll and media. |
nullcast | object | — | Whether the post is promoted-only and hidden from the public timeline. |
user_name | object | — | X handle from x-twitter.connected_accounts, with or without a leading @. Pass user_id or user_name to target a specific account, not both. Omit both to use the |
community_id | object | — | Community id when posting to an X community. |
made_with_ai | object | — | Whether the post contains AI-generated media. |
reply_settings | object | — | Who can reply to the post. |
paid_partnership | object | — | Whether the post is a paid partnership. |
share_with_followers | object | — | Whether to share a community post with followers too. |
Parameters from the server's own tool schema.
Why x-twitter.create_post is rated Medium
Creates content on third-party platform; moderate blast radius if misused for spam or misinformation.
From the tool's definition Publish a post to a connected X account via the official X API
Risk signalsHigh parameter count (14 properties)
Attacks that exploit this kind of access
The rule that runs x-twitter.create_post safely
PolicyLayer is an MCP gateway: it sits between your AI agents and Vee3, and checks every tool call against a rule you set before the call runs. Nothing changes on the server itself. For x-twitter.create_post, this is the rule to start with:
x-twitter.create_post stays usable, but capped: an agent stuck in a loop can't make hundreds of changes a minute. Everything else on the server is denied unless you say otherwise.
The button opens the PolicyLayer dashboard: create your workspace, connect Vee3, apply this rule, and every x-twitter.create_post call is checked against it from then on.
Questions about x-twitter.create_post
Publish a post to a connected X account via the official X API (POST /2/tweets). Call x-twitter.connected_accounts first. If accounts is empty, the user must connect an X account at https://vee3.io/dashboard/connections before posting. Agents cannot complete OAuth; ask the user to connect, then call x-twitter.connected_accounts again. Pass user_id or user_name to target a specific account, not both. Omit both to use the default connected account. At least one of text, poll, media, or card_uri is required. Supports text, polls, media attachments, reply settings, paid partnership disclosure, AI-generated labels, super-follower exclusivity, nullcast posts, cards, communities, and direct-message deep links. To attach media, upload files with files.upload_file and the @vee3/upload CLI, then pass file_name values returned by files.list_uploaded_files in the media array (up to 4 files). Only files listed by list_uploaded_files can be attached. poll, media, and card_uri are mutually exclusive in the X API. Token pricing: 60 tokens base for text posts. Posts whose text includes a URL are billed 1000 tokens base instead. Attaching only media (an image or video) without a URL in the text does not trigger the URL rate. Each attached image adds 50 tokens. Each attached video adds 150 tokens plus 50 tokens per 5 MB of video size. X rate limit: 100 POST /2/tweets requests per connected user per 15 minutes. Wait and retry if posting is temporarily blocked. If X authorization fails, reconnect the account in the Vee3 dashboard. Read the error message when X rejects a post and adjust the request. It is categorised as a Write tool in the Vee3 MCP Server, which means it can create or modify data. Consider rate limits to prevent runaway writes.
x-twitter.create_post accepts 12 parameters: poll, text, media, user_id, card_uri, nullcast, user_name, community_id, made_with_ai, reply_settings, paid_partnership, share_with_followers. The full parameter table on this page comes from the server's own tool schema.
Register the Vee3 MCP server in PolicyLayer and add a rule for x-twitter.create_post: allow, deny, rate-limit, or require approval. Point your MCP client at the PolicyLayer proxy URL and the rule is enforced on every call, before it reaches Vee3. Nothing to install.
x-twitter.create_post is a Write tool with medium risk. Write tools should be rate-limited to prevent accidental bulk modifications.
Yes. Add a rate_limit block to the x-twitter.create_post rule in your PolicyLayer policy. For example, setting max: 10 and window: 60 limits the tool to 10 calls per minute. Rate limits are tracked per agent session and reset automatically.
Set action: deny in the PolicyLayer policy for x-twitter.create_post. The AI agent will receive a policy violation error and cannot call the tool. You can also include a reason field to explain why the tool is blocked.
x-twitter.create_post is provided by the Vee3 MCP server (https://mcp.vee3.io/mcp). PolicyLayer sits as a proxy in front of this server to enforce policies before tool calls reach the server.
More on Vee3, and thousands of servers like it.
This server
Across the catalogue