The content studio MCP for coding agents — BYO-key generation, deterministic video/carousel rendering, draft-first social publishing.
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add broll --env OPENAI_API_KEY='<OPENAI_API_KEY>' --env GEMINI_API_KEY='<GEMINI_API_KEY>' --env BLUESKY_APP_PASSWORD='<BLUESKY_APP_PASSWORD>' --env MASTODON_ACCESS_TOKEN='<MASTODON_ACCESS_TOKEN>' --env X_API_KEY='<X_API_KEY>' --env X_API_SECRET='<X_API_SECRET>' --env X_ACCESS_TOKEN='<X_ACCESS_TOKEN>' --env X_ACCESS_TOKEN_SECRET='<X_ACCESS_TOKEN_SECRET>' -- npx -y broll-mcp~/.codex/config.toml
[mcp_servers.broll]
command = "npx"
args = ["-y", "broll-mcp"]
env = { OPENAI_API_KEY = "<OPENAI_API_KEY>", GEMINI_API_KEY = "<GEMINI_API_KEY>", BLUESKY_APP_PASSWORD = "<BLUESKY_APP_PASSWORD>", MASTODON_ACCESS_TOKEN = "<MASTODON_ACCESS_TOKEN>", X_API_KEY = "<X_API_KEY>", X_API_SECRET = "<X_API_SECRET>", X_ACCESS_TOKEN = "<X_ACCESS_TOKEN>", X_ACCESS_TOKEN_SECRET = "<X_ACCESS_TOKEN_SECRET>" }
# codex mcp add broll --env OPENAI_API_KEY='<OPENAI_API_KEY>' --env GEMINI_API_KEY='<GEMINI_API_KEY>' --env BLUESKY_APP_PASSWORD='<BLUESKY_APP_PASSWORD>' --env MASTODON_ACCESS_TOKEN='<MASTODON_ACCESS_TOKEN>' --env X_API_KEY='<X_API_KEY>' --env X_API_SECRET='<X_API_SECRET>' --env X_ACCESS_TOKEN='<X_ACCESS_TOKEN>' --env X_ACCESS_TOKEN_SECRET='<X_ACCESS_TOKEN_SECRET>' -- npx -y broll-mcp~/.cursor/mcp.json
{
"mcpServers": {
"broll": {
"command": "npx",
"args": [
"-y",
"broll-mcp"
],
"env": {
"OPENAI_API_KEY": "<OPENAI_API_KEY>",
"GEMINI_API_KEY": "<GEMINI_API_KEY>",
"BLUESKY_APP_PASSWORD": "<BLUESKY_APP_PASSWORD>",
"MASTODON_ACCESS_TOKEN": "<MASTODON_ACCESS_TOKEN>",
"X_API_KEY": "<X_API_KEY>",
"X_API_SECRET": "<X_API_SECRET>",
"X_ACCESS_TOKEN": "<X_ACCESS_TOKEN>",
"X_ACCESS_TOKEN_SECRET": "<X_ACCESS_TOKEN_SECRET>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"broll": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"broll-mcp"
],
"env": {
"OPENAI_API_KEY": "<OPENAI_API_KEY>",
"GEMINI_API_KEY": "<GEMINI_API_KEY>",
"BLUESKY_APP_PASSWORD": "<BLUESKY_APP_PASSWORD>",
"MASTODON_ACCESS_TOKEN": "<MASTODON_ACCESS_TOKEN>",
"X_API_KEY": "<X_API_KEY>",
"X_API_SECRET": "<X_API_SECRET>",
"X_ACCESS_TOKEN": "<X_ACCESS_TOKEN>",
"X_ACCESS_TOKEN_SECRET": "<X_ACCESS_TOKEN_SECRET>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"broll": {
"command": "npx",
"args": [
"-y",
"broll-mcp"
],
"env": {
"OPENAI_API_KEY": "<OPENAI_API_KEY>",
"GEMINI_API_KEY": "<GEMINI_API_KEY>",
"BLUESKY_APP_PASSWORD": "<BLUESKY_APP_PASSWORD>",
"MASTODON_ACCESS_TOKEN": "<MASTODON_ACCESS_TOKEN>",
"X_API_KEY": "<X_API_KEY>",
"X_API_SECRET": "<X_API_SECRET>",
"X_ACCESS_TOKEN": "<X_ACCESS_TOKEN>",
"X_ACCESS_TOKEN_SECRET": "<X_ACCESS_TOKEN_SECRET>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"broll": {
"command": "npx",
"args": [
"-y",
"broll-mcp"
],
"env": {
"OPENAI_API_KEY": "<OPENAI_API_KEY>",
"GEMINI_API_KEY": "<GEMINI_API_KEY>",
"BLUESKY_APP_PASSWORD": "<BLUESKY_APP_PASSWORD>",
"MASTODON_ACCESS_TOKEN": "<MASTODON_ACCESS_TOKEN>",
"X_API_KEY": "<X_API_KEY>",
"X_API_SECRET": "<X_API_SECRET>",
"X_ACCESS_TOKEN": "<X_ACCESS_TOKEN>",
"X_ACCESS_TOKEN_SECRET": "<X_ACCESS_TOKEN_SECRET>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"broll": {
"command": "npx",
"args": [
"-y",
"broll-mcp"
],
"env": {
"OPENAI_API_KEY": "<OPENAI_API_KEY>",
"GEMINI_API_KEY": "<GEMINI_API_KEY>",
"BLUESKY_APP_PASSWORD": "<BLUESKY_APP_PASSWORD>",
"MASTODON_ACCESS_TOKEN": "<MASTODON_ACCESS_TOKEN>",
"X_API_KEY": "<X_API_KEY>",
"X_API_SECRET": "<X_API_SECRET>",
"X_ACCESS_TOKEN": "<X_ACCESS_TOKEN>",
"X_ACCESS_TOKEN_SECRET": "<X_ACCESS_TOKEN_SECRET>"
}
}
}
}Environment variables
OPENAI_API_KEYGEMINI_API_KEYBLUESKY_APP_PASSWORDMASTODON_ACCESS_TOKENX_API_KEYX_API_SECRETX_ACCESS_TOKENX_ACCESS_TOKEN_SECRET
Replace the placeholders with your own credentials and keep them out of version control.