Skip to main content
ClaudeWave

MCP server for social media. Manage Instagram, WhatsApp, X, LinkedIn and 8 more DM inboxes plus scheduled posts from Claude, Cursor or ChatGPT.

MCP ServersRegistry oficial0 estrellas0 forksTypeScriptMITActualizado yesterday
ClaudeWave Trust Score
95/100
Verified
Passed
  • Open-source license (MIT)
  • Actively maintained (<30d)
  • Clear description
  • Topics declared
  • Documented (README)
Last scanned: 8/28/2026
Install in Claude Code / Claude Desktop
Method: NPX · @crmsolid/mcp-server
Claude Code CLI
claude mcp add crmsolid-mcp -- npx -y @crmsolid/mcp-server
claude_desktop_config.json (Claude Desktop)
{
  "mcpServers": {
    "crmsolid-mcp": {
      "command": "npx",
      "args": ["-y", "@crmsolid/mcp-server"],
      "env": {
        "CRMSOLID_API_KEY": "<crmsolid_api_key>"
      }
    }
  }
}
1. Run the command above in your terminal (Claude Code), or paste the JSON config into claude_desktop_config.json (Claude Desktop).
2. Replace any <placeholder> values with your API keys or paths.
3. Restart Claude. The MCP server and its tools appear automatically.
Detected environment variables
CRMSOLID_API_KEY
Casos de uso

Resumen de MCP Servers

# MCP Server for Social Media: Manage Every DM and Post From Your AI Assistant

[![npm version](https://img.shields.io/npm/v/@crmsolid/mcp-server.svg)](https://www.npmjs.com/package/@crmsolid/mcp-server)
[![CI](https://github.com/CRM-Solid/crmsolid-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/CRM-Solid/crmsolid-mcp/actions/workflows/ci.yml)
[![node](https://img.shields.io/node/v/@crmsolid/mcp-server.svg)](https://nodejs.org)
[![license](https://img.shields.io/npm/l/@crmsolid/mcp-server.svg)](https://github.com/CRM-Solid/crmsolid-mcp/blob/main/LICENSE)

`@crmsolid/mcp-server` is an MCP server for social media. It gives Claude Desktop, Claude
Code, Cursor, ChatGPT and any other Model Context Protocol client typed access to your
social DM inbox and your posting calendar across 12 platforms, so you can triage messages,
draft replies, schedule posts and pull stats without opening a single dashboard.

## Quickstart

Add this to your MCP client config, restart the client, and ask it to list your social
accounts. Nothing to install: `npx` fetches the package on first run.

```jsonc
{
  "mcpServers": {
    "crmsolid": {
      "command": "npx",
      "args": ["-y", "@crmsolid/mcp-server"],
      "env": { "CRMSOLID_API_KEY": "csk_live_..." }
    }
  }
}
```

Create the key at [app.crmsolid.com/settings/developers](https://app.crmsolid.com/settings/developers).
Config file locations per client:

| Client | Config file |
|---|---|
| Claude Desktop (macOS) | `~/Library/Application Support/Claude/claude_desktop_config.json` |
| Claude Desktop (Windows) | `%APPDATA%\Claude\claude_desktop_config.json` |
| Claude Code | `claude mcp add crmsolid --env CRMSOLID_API_KEY=csk_live_... -- npx -y @crmsolid/mcp-server` |
| Cursor | `.cursor/mcp.json` in the project, or `~/.cursor/mcp.json` globally |
| Everything else | see [docs/chatgpt-and-other-clients.md](./docs/chatgpt-and-other-clients.md) |

Then say, in the client: `List my connected social accounts.` If you get a table back, you
are done. If you do not, jump to [Troubleshooting](#troubleshooting-a-connection-that-will-not-start).

## What you can ask for once it is connected

These are ordinary sentences, not commands. The client picks the tools.

```text
Summarise my social inbox and show the conversations waiting longest for a reply.
Draft a friendly reply to the Instagram DM from Dilara about the 12 month plan.
Anything mentioning a refund today? Open a task for each one and assign the contact.
Plan five posts for next week from what we shipped, and show me the table before you schedule any of them.
Move Thursday's LinkedIn post to Friday 09:00 Europe/Istanbul.
How did last month's posts do compared with the month before?
```

## Supported platforms

Instagram, Facebook, X (Twitter), LinkedIn, TikTok, YouTube, Threads, Pinterest, Reddit,
Bluesky, Telegram and WhatsApp. One inbox, one calendar, one tool surface. A recipe written
against Instagram works against LinkedIn without changes, though per platform messaging
windows and policies still apply.

## Tool reference

Thirteen social tools ship in this release: seven for the DM inbox, six for posts. They sit
alongside 49 CRM tools (contacts, deals, tasks, email, finance, analytics, sequences,
pipelines, jobs, webhooks, agents) on the same server, which is the point: a DM that never
becomes a contact record is a DM you will lose.

### Social inbox

| Tool | Scope | Kind | What it does |
|---|---|---|---|
| `crm_list_social_accounts` | `social:read` | read | Lists connected accounts per platform |
| `crm_list_social_conversations` | `social:read` | read | Filters by `platform`, `status`, `contactId`, `unreadOnly` |
| `crm_get_social_conversation` | `social:read` | read | One conversation plus its last 10 messages |
| `crm_list_social_messages` | `social:read` | read | Message history, paged with `beforeMessageId` |
| `crm_send_social_message` | `social:write` | write | Sends a DM and pauses the AI agent for that contact |
| `crm_mark_social_conversation_read` | `social:write` | write | Clears unread state, safe to repeat |
| `crm_social_inbox_summary` | `social:read` | read | Totals per platform, plus the 10 oldest waiting replies |

### Social posts

| Tool | Scope | Kind | What it does |
|---|---|---|---|
| `crm_list_social_posts` | `posts:read` | read | Filters by `status`, `platform`, `fromDate`, `toDate` |
| `crm_get_social_post` | `posts:read` | read | One post with its media, target account and outcome |
| `crm_schedule_social_post` | `posts:write` | write | Queues a post per target account, **never publishes by accident** |
| `crm_update_social_post` | `posts:write` | write | Edits content, time or media while the post is still pending |
| `crm_cancel_social_post` | `posts:write` | write | Cancels a post that has not gone out |
| `crm_social_post_stats` | `posts:read` | read | Publishing outcomes per platform over `days` |

Full arguments, example calls and example responses for every tool:
[docs/tools-reference.md](./docs/tools-reference.md).

**The publishing rule.** `crm_schedule_social_post` requires `scheduledAt` unless you pass
`publishNow: true` explicitly. Leave both out and the call is rejected with
`scheduledAt is required unless publishNow is true`. An assistant that misunderstands you
gets an error, never a surprise post. Two more guards sit behind it: each target account's
daily post limit is checked before anything is written, and a post that already went out on
the platform cannot be cancelled or deleted through the API.

### Resources

Attach these when you want the model to read state without spending a tool call.

| Resource | Contents |
|---|---|
| `crm://social/accounts` | Every connected account, with handle, time zone and daily post limit |
| `crm://social/inbox` | Unread totals per network plus the 20 most recently active conversations |
| `crm://social/posts/scheduled` | Posts queued to go out, soonest first |
| `crm://social/posts/published` | What actually went out, with live URLs, plus failures and why |

### Prompts

| Prompt | Arguments | Use it for |
|---|---|---|
| `social-inbox-triage` | `platform` (optional) | The morning pass over everything unanswered |
| `weekly-content-plan` | `topic` (optional) | Turning last month's posting into next week's plan |
| `dm-reply-draft` | `conversationId`, `tone` (optional) | A reply that sounds like you. Drafts only, never sends |

## Configuration reference

| Env | Flag | Default | Notes |
|---|---|---|---|
| `CRMSOLID_API_KEY` | `--api-key` | required | Bearer key, `csk_live_...` |
| `CRMSOLID_BASE_URL` | `--base-url` | `https://api.crmsolid.com` | Point at a staging host if you have one |
| `CRMSOLID_TOOLS` | `--tools` | all | CSV filter, for example `social,posts` |
| `CRMSOLID_READ_ONLY` | `--read-only` | off | Drops every write tool |
| | `--version`, `--help` | | Prints and exits |

A flag beats the matching environment variable. Two useful profiles:

```jsonc
// Content scheduling only, on a machine that must never touch the inbox.
{
  "mcpServers": {
    "crmsolid": {
      "command": "npx",
      "args": ["-y", "@crmsolid/mcp-server", "--tools", "posts"],
      "env": { "CRMSOLID_API_KEY": "csk_live_..." }
    }
  }
}
```

```jsonc
// Read only, for a shared laptop or a demo.
{
  "mcpServers": {
    "crmsolid": {
      "command": "npx",
      "args": ["-y", "@crmsolid/mcp-server", "--read-only"],
      "env": { "CRMSOLID_API_KEY": "csk_live_..." }
    }
  }
}
```

Requires Node 20 or newer. The package is ESM, ships a `crmsolid-mcp` binary, and speaks
MCP over stdio.

## How the MCP server for social media works

```text
MCP client (Claude Desktop, Claude Code, Cursor, ChatGPT, ...)
        |  stdio, JSON-RPC
   crmsolid-mcp   (this package: filters, then forwards)
        |  HTTPS, Authorization: Bearer csk_live_...
   POST https://api.crmsolid.com/mcp
        |
   your connected Instagram / LinkedIn / X / WhatsApp / ... accounts
```

The package is a thin stdio proxy. It mirrors `tools/list`, `tools/call`, `resources/*` and
`prompts/*` from the hosted endpoint, and applies your `--tools` and `--read-only` filters to
the tool list before the client ever sees it. A filtered tool is not listed and not callable:
the proxy refuses the call rather than forwarding it. Resources and prompts pass through
unfiltered, because a resource is inert data and a prompt is a template, and the scopes on
your key still gate what either one can read. The proxy holds no platform credentials of its
own: the Instagram token, the LinkedIn token and the rest live server side, so nothing a
model reads or writes can leak them onto the local machine.

Remote clients that want a URL instead of a subprocess can call
`https://api.crmsolid.com/mcp` directly with a bearer header. See
[docs/chatgpt-and-other-clients.md](./docs/chatgpt-and-other-clients.md).

## Security model

Four new scopes ship with this release, granted per key:

| Scope | Grants | Does not grant |
|---|---|---|
| `social:read` | Read accounts, conversations, messages, inbox summary | Sending anything |
| `social:write` | Send DMs, mark conversations read | Reading the inbox on its own |
| `posts:read` | Read scheduled and published posts, stats | Creating or editing posts |
| `posts:write` | Create, update and cancel posts | Reading the DM inbox |

Four properties worth knowing before you hand a key to a model:

1. **No tool both reads and writes.** A write returns a confirmation of what it changed,
   never a data feed, so a single approved call cannot quietly exfiltrate your inbox.
2. **Every write is annotated.** Clients that show approval prompts show them for sends and
   posts, and can be configured to require a human click every time.
3. **`--read-only` and `--tools` are local filters.** They protect you from a confused
   model. They are not a substitute for scoping the key, because a stolen key is used
   without your proxy. Scope the key first, filter second.
4. **A DM is un
ai-agentschatgptclaudecrmcrmsolidcursordminstagrammcpmcp-servermodel-context-protocolsocial-mediasocial-media-managementtypescriptwhatsapp

Lo que la gente pregunta sobre crmsolid-mcp

¿Qué es CRM-Solid/crmsolid-mcp?

+

CRM-Solid/crmsolid-mcp es mcp servers para el ecosistema de Claude AI. MCP server for social media. Manage Instagram, WhatsApp, X, LinkedIn and 8 more DM inboxes plus scheduled posts from Claude, Cursor or ChatGPT. Tiene 0 estrellas en GitHub y su última actualización registrada es del 2026-08-27.

¿Cómo se instala crmsolid-mcp?

+

Puedes instalar crmsolid-mcp clonando el repositorio (https://github.com/CRM-Solid/crmsolid-mcp) o siguiendo las instrucciones del README en GitHub. ClaudeWave también te ofrece bloques de instalación rápida en esta misma página.

¿Es seguro usar CRM-Solid/crmsolid-mcp?

+

Nuestro agente de seguridad ha analizado CRM-Solid/crmsolid-mcp y le ha asignado un Trust Score de 95/100 (tier: Verified). Revisa el desglose completo de comprobaciones superadas y flags en esta página.

¿Quién mantiene CRM-Solid/crmsolid-mcp?

+

CRM-Solid/crmsolid-mcp es mantenido por CRM-Solid. La última actividad registrada en GitHub es del 2026-08-27, con 0 issues abiertos.

¿Hay alternativas a crmsolid-mcp?

+

Sí. En ClaudeWave puedes explorar mcp servers similares en /categories/mcp, ordenados por popularidad o actividad reciente.

Despliega crmsolid-mcp en tu cloud

Lleva este repo a producción en minutos. Cada plataforma genera su propio entorno con variables de entorno editables.

¿Mantienes este repo? Añade un badge a tu README

Pega el badge en tu README de GitHub para mostrar que está auditado por ClaudeWave. Cada badge enlaza de vuelta a esta página y muestra el Trust Score actual.

Featured on ClaudeWave: CRM-Solid/crmsolid-mcp
[![Featured on ClaudeWave](https://claudewave.com/api/badge/crm-solid-crmsolid-mcp)](https://claudewave.com/repo/crm-solid-crmsolid-mcp)
<a href="https://claudewave.com/repo/crm-solid-crmsolid-mcp"><img src="https://claudewave.com/api/badge/crm-solid-crmsolid-mcp" alt="Featured on ClaudeWave: CRM-Solid/crmsolid-mcp" width="320" height="64" /></a>

Más MCP Servers

Alternativas a crmsolid-mcp