Skip to main content
Glama
@b2b-saas-inc/olli-mcp-server

@b2b-saas-inc/olli-mcp-server

by B2B-Saas-Inc

@b2b-saas-inc/olli-mcp-server

MCP server for olli.social — lets LLMs manage your social presence via API key.

Installation

Add to your Claude Desktop (or other MCP client) config:

{
  "mcpServers": {
    "olli": {
      "command": "npx",
      "args": ["-y", "@b2b-saas-inc/olli-mcp-server"],
      "env": {
        "OLLI_API_KEY": "olli_sk_your_key_here"
      }
    }
  }
}

Generate an API key in your olli.social profile settings under API Keys.

Related MCP server: @posteahora/mcp

Configuration

Variable

Required

Default

OLLI_API_KEY

Yes

—

OLLI_BASE_URL

No

https://api.olli.social/v1

Tools (68)

Category

Tools

Workspaces

list_workspaces, get_workspace, update_workspace, list_memberships, update_membership, remove_membership, list_invitations, create_invitation, delete_invitation, get_feature_flags, get_plan_features

Campaigns

list_campaigns, get_campaign, create_campaign, update_campaign, delete_campaign

Drafts

list_drafts, get_draft, create_draft, update_draft, delete_draft, publish_draft, schedule_draft

Calendar

list_calendar_events, get_calendar_event, create_calendar_event, update_calendar_event, delete_calendar_event

Assets

list_assets, get_asset, create_asset, delete_asset

ICPs

list_icps, create_icp, update_icp, delete_icp

Industries

list_industries, create_industry, update_industry, delete_industry

Products

list_products, create_product, update_product, delete_product

Teams

list_teams, get_team, create_team, update_team, delete_team, list_team_members, add_team_member, remove_team_member

AI

generate_post, improve_content, create_variations, suggest_hashtags, analyze_content, get_ai_usage, campaign_generate, avatar_chat, list_avatar_conversations, get_avatar_conversation

Analytics

get_analytics

Amplification

list_amplification_posts, get_amplification_post, create_amplification_post, delete_amplification_post

Leaderboard

get_leaderboard

Integrations

list_integrations, get_linkedin_organizations, select_linkedin_organization, sync_linkedin, get_linkedin_analytics, disconnect_integration

Notifications

list_notifications, mark_notification_read, mark_all_notifications_read, delete_notification

Support

list_support_tickets, get_support_ticket, create_support_ticket, list_ticket_messages, reply_to_ticket

Billing

get_billing, list_invoices

All workspace-scoped tools require a workspace_id (slug or UUID, e.g. "olli-demo").

Development

npm install
OLLI_API_KEY=olli_sk_... npm run dev
npm run build

License

MIT

Schema Sync

Avatar tool schemas are sourced from olli-social-app's AvatarToolRegistry — the single source of truth for all 34 avatar AI tool definitions. Instead of maintaining duplicate schemas in TypeScript, this MCP server imports them as JSON.

How it works

  1. The Rails app exposes GET /api/v1/ai/avatar_schemas (protected by shared secret)

  2. Running npm run sync-schemas fetches the schemas and writes them to src/generated/avatar-schemas.json

  3. At startup, the MCP server reads this JSON file and dynamically registers avatar tools

  4. Each avatar tool proxies execution back to the Rails avatar endpoint

Setup

Add these variables to your .env file:

MCP_RAILS_URL=https://api.olli.social
MCP_SHARED_SECRET=your_shared_secret_here

MCP_RAILS_URL is the base URL of your olli-social-app Rails server.
MCP_SHARED_SECRET must match the MCP_SHARED_SECRET environment variable on the Rails side.

Syncing schemas

# Pull latest avatar tool schemas from Rails
npm run sync-schemas

The output file src/generated/avatar-schemas.json is committed to the repo for reproducible builds. Re-run the sync whenever avatar tool definitions change in the Rails app (i.e., when AvatarToolRegistry::SCHEMA_VERSION is bumped).

Adding new avatar tools

New avatar tools should be added to AvatarToolRegistry in olli-social-app — never directly in this MCP server. After adding tools in Rails:

  1. Bump SCHEMA_VERSION in avatar_tool_registry.rb

  2. Run npm run sync-schemas in this repo

  3. Commit the updated avatar-schemas.json

Available Tools

138 tools
add_team_memberB

Add a user to a team

Inputs: workspace_id (required), team_id (required), user_id (required).

analyze_contentC

Analyze post content for quality, tone, and suggestions

Inputs: workspace_id (required), content (required), platform.

approve_point_redemptionA

Approve a pending point redemption request (admin action)

Inputs: workspace_id (required), id (required).

avatar_chatC

Chat with the AI brand avatar

Inputs: workspace_id (required), message (required), conversation_id.

campaign_generateC

Generate campaign content (posts, messaging) using AI

Inputs: workspace_id (required), campaign_id (required), platform, count.

check_feature_usageA

Check remaining usage allowance for a feature (e.g., AI generations, posts)

Inputs: workspace_id (required), feature (required).

create_amplification_postB

Add a post to the amplification queue for team sharing

Inputs: workspace_id (required), original_post_id (required), platform (required), content_preview (required), +2 more.

create_api_keyA

Generate a new API key. The full key value is only shown once in the response.

Inputs: name (required).

create_assetC

Add an asset to the workspace library

Inputs: workspace_id (required), name (required), asset_type (required), url (required), +2 more.

create_calendar_eventC

Create a calendar event

Inputs: workspace_id (required), title (required), scheduled_for (required), content, +4 more.

create_campaignC

Create a new campaign

Inputs: workspace_id (required), title (required), description, purpose, +13 more.

create_compose_promptC

Create a reusable compose prompt template

Inputs: workspace_id (required), title (required), prompt_text (required), platform, +2 more.

create_domain_verificationA

Start domain verification for a workspace (generates DNS/meta tag verification record)

Inputs: workspace_id (required), domain (required).

create_draftC

Create a new draft

Inputs: workspace_id (required), content (required), title, platform, +4 more.

create_icpC

Create an ICP

Inputs: workspace_id (required), name (required), description, criteria.

create_incentive_rewardB

Create a new incentive reward that team members can redeem with points

Inputs: workspace_id (required), name (required), points_cost (required), description, +1 more.

create_industryC

Create a target industry

Inputs: workspace_id (required), name (required), description, criteria.

create_invitationC

Invite a user to the workspace by email

Inputs: workspace_id (required), email (required), role.

create_pixel_configA

Create a new pixel tracking configuration for a website domain

Inputs: workspace_id (required), domain (required), name.

create_productD

Create a product

Inputs: workspace_id (required), name (required), description, metadata.

create_rss_feedB

Add a new RSS feed for content curation

Inputs: workspace_id (required), url (required), name, category.

create_support_ticketC

Create a support ticket

Inputs: workspace_id (required), subject (required), description (required), priority, +1 more.

create_teamB

Create a new team in a workspace

Inputs: workspace_id (required), name (required), description, metadata.

create_tracked_profileC

Add a LinkedIn profile to tracking for prospecting and monitoring

Inputs: workspace_id (required), linkedin_url (required), name, company, +2 more.

create_variationsC

Generate multiple variations of a post

Inputs: workspace_id (required), content (required), count, platform.

create_writing_sampleB

Add a writing sample to train the AI on your brand voice

Inputs: workspace_id (required), title (required), content (required), platform.

delete_amplification_postB

Remove a post from the amplification queue

Inputs: workspace_id (required), id (required).

delete_api_keyB

Revoke and delete an API key

Inputs: id (required).

delete_assetC

Delete an asset from the library

Inputs: workspace_id (required), id (required).

delete_calendar_eventC

Delete a calendar event

Inputs: workspace_id (required), id (required).

delete_campaignC

Delete a campaign

Inputs: workspace_id (required), id (required).

delete_compose_promptC

Delete a compose prompt template

Inputs: workspace_id (required), id (required).

delete_draftC

Delete a draft

Inputs: workspace_id (required), id (required).

delete_icpC

Delete an ICP

Inputs: workspace_id (required), id (required).

delete_incentive_rewardC

Delete an incentive reward

Inputs: workspace_id (required), id (required).

delete_industryC

Delete a target industry

Inputs: workspace_id (required), id (required).

delete_invitationB

Revoke a pending invitation

Inputs: workspace_id (required), id (required).

delete_notificationB

Delete a notification

Inputs: workspace_id (required), id (required).

delete_pixel_configB

Delete a pixel tracking configuration

Inputs: workspace_id (required), id (required).

delete_productB

Delete a product

Inputs: workspace_id (required), id (required).

delete_rss_feedB

Remove an RSS feed from the workspace

Inputs: workspace_id (required), id (required).

delete_teamB

Delete a team

Inputs: workspace_id (required), id (required).

delete_tracked_profileC

Remove a profile from tracking

Inputs: workspace_id (required), id (required).

delete_writing_sampleC

Remove a writing sample

Inputs: workspace_id (required), id (required).

disconnect_integrationC

Disconnect a social platform integration

Inputs: workspace_id (required), platform (required).

fulfill_point_redemptionA

Mark a point redemption as fulfilled (reward delivered)

Inputs: workspace_id (required), id (required).

generate_extension_tokenB

Generate a new Chrome extension connection token for a workspace

Inputs: workspace_id (required).

generate_postC

Generate a social media post using AI

Inputs: workspace_id (required), platform (required), topic (required), tone, +1 more.

get_ai_usageB

Get AI quota usage for the workspace

Inputs: workspace_id (required).

get_amplification_postC

Get details of an amplification post

Inputs: workspace_id (required), id (required).

get_analyticsA

Get workspace analytics (impressions, engagement, follower growth)

Inputs: workspace_id (required), period.

get_assetB

Get a single asset

Inputs: workspace_id (required), id (required).

get_avatar_conversationB

Get a single avatar chat conversation with messages

Inputs: workspace_id (required), id (required).

get_billingB

Get billing info and current subscription for a workspace

Inputs: workspace_id (required).

get_calendar_eventB

Get a single calendar event

Inputs: workspace_id (required), id (required).

get_campaignB

Get a single campaign

Inputs: workspace_id (required), id (required).

get_checklistB

Get the onboarding checklist with completion status for each item

Inputs: workspace_id (required).

get_domain_verificationB

Check domain verification status

Inputs: workspace_id (required).

get_draftB

Get a single draft

Inputs: workspace_id (required), id (required).

get_extension_tokenA

Show the current Chrome extension token for a workspace

Inputs: workspace_id (required).

get_feature_flagsB

Get enabled feature flags for a workspace

Inputs: workspace_id (required).

get_incentive_rewardA

Get details of a specific incentive reward

Inputs: workspace_id (required), id (required).

get_leaderboardB

Get the workspace member leaderboard ranked by content performance

Inputs: workspace_id (required), period, team_id.

get_linkedin_analyticsC

Get LinkedIn integration analytics

Inputs: workspace_id (required).

get_linkedin_organizationsA

List LinkedIn organizations available for a workspace integration

Inputs: workspace_id (required).

get_onboarding_statusB

View onboarding progress and completion status for a workspace

Inputs: workspace_id (required).

get_pixel_snippetB

Get the JavaScript embed snippet for a pixel config (for website installation)

Inputs: workspace_id (required), id (required).

get_plan_featuresB

Get features available on the workspace current plan

Inputs: workspace_id (required).

get_profileA

Get the current user profile (display name, email, timezone, etc.)

Inputs: no named parameters.

get_rss_feedA

Get details of a specific RSS feed including sync status

Inputs: workspace_id (required), id (required).

get_support_ticketC

Get details of a support ticket

Inputs: workspace_id (required), id (required).

get_teamA

Get a single team and its members

Inputs: workspace_id (required), id (required).

get_tracked_profileA

Get details of a tracked LinkedIn profile including activity history

Inputs: workspace_id (required), id (required).

get_twitter_analyticsB

Get Twitter/X integration analytics

Inputs: workspace_id (required).

get_visitor_sessionA

Get detailed info about a specific visitor session including page views and identified company

Inputs: workspace_id (required), id (required).

get_visitor_statsA

Get aggregated visitor session statistics for a workspace

Inputs: workspace_id (required), since.

get_workspaceB

Get details of a workspace including subscription and settings

Inputs: workspace_id (required).

improve_contentB

Improve existing post content using AI

Inputs: workspace_id (required), content (required), instruction (required), platform.

list_amplification_postsA

List amplification posts (posts queued for team amplification). Supports pagination.

Inputs: workspace_id (required), platform, user_id, page, +1 more.

list_api_keysB

List API keys for the current user

Inputs: no named parameters.

list_assetsB

List assets in the workspace library. Supports pagination.

Inputs: workspace_id (required), type, tag, q, +2 more.

list_avatar_conversationsC

List avatar chat conversations. Supports pagination.

Inputs: workspace_id (required), page, per_page.

list_calendar_eventsC

List calendar events in a workspace. Supports pagination.

Inputs: workspace_id (required), platform, status, start_date, +3 more.

list_campaignsB

List all campaigns in a workspace. Supports pagination.

Inputs: workspace_id (required), q, status, team_id, +2 more.

list_compose_promptsB

List saved compose prompt templates for content generation

Inputs: workspace_id (required), page, per_page.

list_draftsB

List drafts in a workspace. Supports pagination.

Inputs: workspace_id (required), platform, q, page, +1 more.

list_icpsB

List Ideal Customer Profiles (ICPs) for a workspace. Supports pagination.

Inputs: workspace_id (required), q, page, per_page.

list_incentive_rewardsB

List incentive rewards available for point redemption

Inputs: workspace_id (required), page, per_page.

list_industriesB

List target industries for a workspace. Supports pagination.

Inputs: workspace_id (required), q, page, per_page.

list_integrationsB

List all connected integrations for a workspace

Inputs: workspace_id (required).

list_invitationsB

List pending invitations for a workspace. Supports pagination.

Inputs: workspace_id (required), page, per_page.

list_invoicesB

List billing invoices for a workspace. Supports pagination.

Inputs: workspace_id (required), page, per_page.

list_linkedin_conversationsB

List LinkedIn messaging conversations for a workspace

Inputs: workspace_id (required), page, per_page.

list_membershipsB

List members of a workspace. Supports pagination.

Inputs: workspace_id (required), status, role, page, +1 more.

list_notificationsA

List notifications for the current user in a workspace. Supports pagination.

Inputs: workspace_id (required), page, per_page.

list_pixel_configsB

List pixel tracking configurations for website visitor identification

Inputs: workspace_id (required), page, per_page.

list_point_redemptionsB

List point redemption requests (pending, approved, rejected, fulfilled)

Inputs: workspace_id (required), status, page, per_page.

list_productsA

List products in a workspace. Supports pagination.

Inputs: workspace_id (required), page, per_page.

list_rss_feed_itemsB

List items/articles from RSS feeds. Filter by feed or browse all.

Inputs: workspace_id (required), feed_id, page, per_page.

list_rss_feedsC

List RSS feeds configured for content curation

Inputs: workspace_id (required), page, per_page.

list_support_ticketsB

List support tickets for a workspace. Supports pagination.

Inputs: workspace_id (required), page, per_page.

list_team_membersB

List members of a team. Supports pagination.

Inputs: workspace_id (required), team_id (required), page, per_page.

list_teamsB

List teams in a workspace. Supports pagination.

Inputs: workspace_id (required), page, per_page.

list_ticket_messagesC

List messages on a support ticket. Supports pagination.

Inputs: workspace_id (required), ticket_id (required), page, per_page.

list_tracked_profilesB

List tracked LinkedIn profiles for prospecting and monitoring

Inputs: workspace_id (required), q, page, per_page.

list_visitor_sessionsB

List recent visitor sessions captured by the tracking pixel. Returns company identification, page views, and engagement data.

Inputs: workspace_id (required), since, page, per_page.

list_workspacesA

List all workspaces the authenticated user belongs to. Supports pagination.

Inputs: page, per_page.

list_writing_samplesB

List writing samples that define the workspace brand voice

Inputs: workspace_id (required), page, per_page.

mark_all_notifications_readB

Mark all notifications as read

Inputs: workspace_id (required).

mark_notification_readB

Mark a single notification as read

Inputs: workspace_id (required), id (required).

publish_draftA

Publish a draft immediately to a connected social account

Inputs: workspace_id (required), id (required), integration_id (required), author_type.

reject_point_redemptionA

Reject a pending point redemption request (admin action)

Inputs: workspace_id (required), id (required).

remove_membershipB

Remove a member from a workspace

Inputs: workspace_id (required), id (required).

remove_team_memberC

Remove a user from a team

Inputs: workspace_id (required), team_id (required), id (required).

reply_to_linkedin_conversationA

Send a reply in a LinkedIn messaging conversation

Inputs: workspace_id (required), conversation_id (required), message (required).

reply_to_ticketB

Send a message on a support ticket

Inputs: workspace_id (required), ticket_id (required), body (required).

request_point_redemptionA

Request to redeem points for an incentive reward

Inputs: workspace_id (required), incentive_reward_id (required).

revoke_extension_tokenB

Revoke the Chrome extension token for a workspace

Inputs: workspace_id (required).

schedule_draftC

Schedule a draft for future publishing

Inputs: workspace_id (required), id (required), integration_id (required), scheduled_for (required), +1 more.

select_linkedin_organizationB

Select which LinkedIn company page to post on behalf of

Inputs: workspace_id (required), organization_id (required), organization_name (required), organization_logo_url.

suggest_hashtagsC

Suggest relevant hashtags for a post

Inputs: workspace_id (required), content (required), platform.

sync_linkedinB

Trigger a LinkedIn data sync for a workspace

Inputs: workspace_id (required).

sync_rss_feedB

Manually trigger a sync for an RSS feed to fetch latest items

Inputs: workspace_id (required), id (required).

sync_twitterB

Trigger a Twitter/X data sync for a workspace

Inputs: workspace_id (required).

track_feature_usageB

Record usage of a feature for quota tracking

Inputs: workspace_id (required), feature (required), quantity.

update_calendar_eventC

Update a calendar event

Inputs: workspace_id (required), id (required), title, content, +5 more.

update_campaignC

Update an existing campaign

Inputs: workspace_id (required), id (required), title, description, +14 more.

update_draftC

Update a draft

Inputs: workspace_id (required), id (required), title, content, +5 more.

update_icpC

Update an ICP

Inputs: workspace_id (required), id (required), name, description, +1 more.

update_incentive_rewardC

Update an incentive reward

Inputs: workspace_id (required), id (required), name, description, +2 more.

update_industryC

Update a target industry

Inputs: workspace_id (required), id (required), name, description, +1 more.

update_membershipB

Update a workspace membership role or status

Inputs: workspace_id (required), id (required), role, status.

update_productC

Update a product

Inputs: workspace_id (required), id (required), name, description, +1 more.

update_profileC

Update the current user profile settings

Inputs: display_name, bio, timezone, avatar_url.

update_rss_feedC

Update an RSS feed configuration

Inputs: workspace_id (required), id (required), name, category, +1 more.

update_teamB

Update an existing team

Inputs: workspace_id (required), id (required), name, description, +1 more.

update_workspaceB

Update workspace settings (name, description, brand voice, etc.)

Inputs: workspace_id (required), name, description, website_url, +2 more.

verify_domainA

Trigger domain verification check (after DNS/meta tag has been set up)

Inputs: workspace_id (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    C2.7/5.0

    Scored across 138 tools

    Disambiguation4/5

    Tools are mostly distinct by resource, but potential overlap between 'create_draft' and 'generate_post' could cause confusion. The large quantity makes subtle distinctions harder.

    Naming Consistency5/5

    All tools follow a strict verb_noun snake_case pattern, highly consistent and predictable.

    Tool Count1/5

    138 tools is far beyond typical scope for a single server. This extreme count suggests lack of focus and may overwhelm agents.

    Completeness3/5

    Covers many resources but missing update operations for assets, tracked profiles, pixel configs, etc. Some CRUD gaps exist, but core workflows are generally supported.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      C
      maintenance
      Schedule, manage, generate, and analyze social posts across 11 networks (Instagram, TikTok, X, LinkedIn, YouTube, Facebook, Pinterest, Threads, Bluesky, Mastodon, Telegram) from any AI agent — 13 tools covering scheduling, media upload, AI caption generation, best-times, analytics, listening, and comments.
      13
      54 npm
      MIT
    • A
      license
      A
      quality
      C
      maintenance
      Enables AI agents to create, schedule, and publish social media posts across Instagram, X/Twitter, LinkedIn, Threads, Facebook, and other platforms via the PosteAhora API.
      15
      20 npm
      MIT
    • A
      license
      A
      quality
      B
      maintenance
      Enables AI agents to manage social media posts across multiple platforms by scoring virality, generating threads, converting formats, optimizing hooks, scheduling campaigns, and validating platform limits.
      12
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables AI agents to draft, schedule, and publish social media posts across multiple platforms through an authorized Socialync account, with human-in-the-loop approval, quota checks, media uploads, analytics, and content generation.
      MIT