Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
87 changes: 67 additions & 20 deletions mcp/using-mcp/use-cases/social-content-creation/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -29,25 +29,6 @@ Before you get started, make sure you have:

## Installing the MCP servers

After following both setup guides, your `claude_desktop_config.json` should include the Slack MCP server:

```json
{
"mcpServers": {
"SlackMCPServer": {
"command": "PATH_TO_MCP_SERVER/slack-mcp-server",
"args": ["-transport", "stdio"],
"env": {
"SLACK_MCP_XOXC_TOKEN": "YOUR_XOXC_TOKEN",
"SLACK_MCP_XOXD_TOKEN": "YOUR_XOXD_TOKEN",
"SLACK_MCP_USERS_CACHE": "PATH_TO_MCP_SERVER/.users_cache.json",
"SLACK_MCP_CHANNELS_CACHE": "PATH_TO_MCP_SERVER/.channels_cache.json"
}
}
}
}
```

You should also see your Postiz connector listed in Claude Desktop, under **Settings → Connectors**.

![Postiz connector](/assets/mcp/using-mcp/postiz-connector.png)
Expand All @@ -72,8 +53,74 @@ Claude schedules the posts using Postiz, so you can review them at [platform.pos

![Claude using Postiz](/assets/mcp/using-mcp/postiz-scheduled-posts.png)

## Adding keyword targeting with Google Sheets and Gram

Your marketing team likely has a keyword strategy for including specific terms they want to target in social content. Instead of manually checking if Slack conversations mention these keywords, you can store them in a Google Sheet (in a Google Drive folder) and have Claude reference them automatically.

You could use the Google Sheets MCP server from the quickstart [guide](/mcp/using-mcp/google-sheet-claude-quickstart), but that's overkill:

- Claude only needs to read the spreadsheet.
- The Google Sheets MCP server exposes 15+ operations when you need three at most. For internal data, building your own API gives you better control over privacy and security.

If you already have an API, make sure you have an OpenAPI document. You can create an MCP server by uploading the OpenAPI document to Gram.

For this guide, we've built a basic Google Sheets API with three operations: reading sheet data, listing sheets, and getting spreadsheet details. Clone the [example repository](https://github.com/speakeasy-api/examples/tree/main/google-sheet-mcp-server-api), follow the `README` to host it, and generate an OpenAPI document. Then continue to the next section.

### Creating the internal Google Sheets MCP server on Gram

[Gram](https://getgram.ai/) generates MCP servers from OpenAPI documents and handles hosting. Upload your OpenAPI document, configure your environment variables, and the server is ready.

[Sign up for Gram](https://getgram.ai/) and follow these steps:

- On the [**Toolsets** page](https://docs.getgram.ai/build-mcp/create-default-toolset), upload the OpenAPI document for your Google Sheets API.

- Create a toolset named `Google Sheets Tools` and enable the tools you need.

![Enabling tools](./assets/enabling-tools.png)

- In the [**Auth** tab](https://docs.getgram.ai/concepts/environments), set `SERVER_URL` to your deployed API's URL. If you're running the API locally, expose it with [ngrok](https://ngrok.com/) by running `ngrok http 127.0.0.1:8000` and use the forwarding URL for `SERVER_URL`.

- In **Settings**, create a [Gram API key](https://docs.getgram.ai/concepts/api-keys).

### Install the MCP server in Claude Desktop

In your Google Sheets toolset's **MCP** tab, click the **View** button on the **MCP Installation** section to view the installation configuration.

![Use Managed authentication](./assets/authentication-on-gram-choice.png)

Open Claude Desktop, navigate to **Settings** → **Developer**, and click **Edit Config**. Open the `claude_desktop_config.json` file, paste the installation configuration from Gram, and replace `<your-key-here>` with your Gram API key. Your configuration will be similar to the following example:

```json
{
"mcpServers": {
"GramGooglesheetstools": {
"command": "npx",
"args": [
"mcp-remote",
"https://app.getgram.ai/mcp/xxxxx",
"--header",
"Gram-Environment:default",
"--header",
"Authorization:${GRAM_KEY}"
],
"env": {
"GRAM_KEY": "Bearer <your-key-here>"
}
}
}
}
```

Restart Claude Desktop, open a new chat, and verify the integration by asking Claude to create posts based on your SEO keywords:

```txt
Find threads in the #threads channel that have 🚀 emoji reactions. Read those thread messages, analyze the key points, then check for the SEO keywords spreadsheet file using the GramGoogleSheets MCP server, and create engaging X posts using the Postiz MCP server.
```

![Testing Google Sheet integration](./assets/testing-the-google-sheet-integration.png)

## Conclusion

Clause can now automatically turn your best Slack threads into social media posts by finding threads marked with 🚀 reactions.
Claude can now automatically turn your best Slack threads into social media posts by finding threads marked with 🚀 reactions. With the Google Sheets MCP integration, Claude Desktop ensures your content targets your priority keywords.

Customize this workflow to suit your team's needs and skills. For example, telling Claude to focus on messages from specific channels or users may help it create content that resonates with your audience.