Vexa
Meeting bot and transcripts for Google Meet, Teams and Zoom. Live or after, speakers labelled.
Description from the maker (original English)
Read Slack conversations, threads, user info, and search messages from your MCP client.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
SLACK_USER_TOKEN, SLACK_BOT_TOKEN, SLACK_WORKSPACE_URLValues marked secret are keys to your account. Never share them or paste them into a chat.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"slack": {
"command": "uvx",
"args": [
"slack-mcp-server-v2"
],
"env": {
"SLACK_USER_TOKEN": "your-value",
"SLACK_BOT_TOKEN": "your-value",
"SLACK_WORKSPACE_URL": "your-value"
}
}
}
}Run this in your terminal
claude mcp add slack --env SLACK_USER_TOKEN=your-value --env SLACK_BOT_TOKEN=your-value --env SLACK_WORKSPACE_URL=your-value -- uvx slack-mcp-server-v2Fill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"slack": {
"command": "uvx",
"args": [
"slack-mcp-server-v2"
],
"env": {
"SLACK_USER_TOKEN": "your-value",
"SLACK_BOT_TOKEN": "your-value",
"SLACK_WORKSPACE_URL": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"slack": {
"type": "stdio",
"command": "uvx",
"args": [
"slack-mcp-server-v2"
],
"env": {
"SLACK_USER_TOKEN": "your-value",
"SLACK_BOT_TOKEN": "your-value",
"SLACK_WORKSPACE_URL": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026
The registry name was verified with the GitHub account stevenvo, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
You need to fill in: SLACK_USER_TOKEN, SLACK_BOT_TOKEN, SLACK_WORKSPACE_URL
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (0.1.0) reached the registry 12 months ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Python (uv) on your computer.
In the same category: Vexa, emailmd, MCP WhatsApp Cloud
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
Meeting bot and transcripts for Google Meet, Teams and Zoom. Live or after, speakers labelled.
Render markdown into email-safe HTML, lint drafts for deliverability problems, and preview emails.
MCP server for WhatsApp Cloud API (Meta) — messages, media, and templates via Graph API
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
A Model Context Protocol (MCP) server that provides programmatic access to Slack conversations, threads, and workspace information. Designed for AI assistants like Claude to interact with your Slack workspace through a standardized interface.
The Model Context Protocol is an open standard that enables AI assistants to securely access external data sources and tools. This server implements MCP to give Claude direct access to your Slack workspace.
The easiest way to use this MCP server is to install it directly from PyPI:
# Install via pip
pip install slack-mcp-server-v2
uvx slack-mcp-server-v2
# Clone the repository
git clone https://github.com/stevenvo/slack-mcp-server.git cd slack-mcp-server
pip install -r requirements.txt
After installation, you'll need to set up authentication (see below).
A User Token uses your personal Slack permissions and can access all channels you're a member of.
channels:history - View messages in public channelschannels:read - View basic channel infogroups:history - View messages in private channelsgroups:read - View basic private channel infoim:history - View messages in direct messagesim:read - View basic DM infompim:history - View messages in group DMsmpim:read - View basic group DM infousers:read - View user informationsearch:read - Search messagesxoxp-)A Bot Token is more limited but easier to set up for team-wide access.
xoxb-)/invite @YourBotNameCreate a .env file:
cp .env.example .env
Edit .env and add your token:
# Use one of these:
SLACK_USER_TOKEN=[PopNx MCP ตัดค่าที่หน้าตาเหมือนกุญแจออก]
SLACK_BOT_TOKEN=[PopNx MCP ตัดค่าที่หน้าตาเหมือนกุญแจออก]
Add this server to Claude Code by editing your ~/.claude.json file:
{
"mcpServers": { "slack": { "command": "uvx", "args": ["slack-mcp-server-v2"], "env": { "SLACK_USER_TOKEN": "[PopNx MCP ตัดค่าที่หน้าตาเหมือนกุญแจออก]", "SLACK_WORKSPACE_URL": "https://your-workspace.slack.com" } } } }
If you installed from source:
{
"mcpServers": { "slack": { "command": "python", "args": ["/path/to/slack-mcp-server/server.py"], "env": { "SLACK_USER_TOKEN": "[PopNx MCP ตัดค่าที่หน้าตาเหมือนกุญแจออก]", "SLACK_WORKSPACE_URL": "https://your-workspace.slack.com" } } } }
If you prefer to use a bot token instead of a user token:
{
"mcpServers": { "slack": { "command": "uvx", "args": ["slack-mcp-server-v2"], "env": { "SLACK_BOT_TOKEN": "[PopNx MCP ตัดค่าที่หน้าตาเหมือนกุญแจออก]", "SLACK_WORKSPACE_URL": "https://your-workspace.slack.com" } } } }
Note: Remember to invite your bot to channels: /invite @YourBotName
Restart Claude Code and verify the server is running:
claude mcp list
You should see slack in the list of active MCP servers.
This server provides 7 MCP tools for interacting with Slack:
read_channel_messagesRetrieve recent messages from any Slack channel with flexible time filtering.
Parameters:
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
channel_id | string | ✅ | - | Slack channel ID (e.g., C1234567890) |
lookback_hours | number | ❌ | 24 | Hours to look back from now |
limit | number | ❌ | 100 | Max messages to retrieve (max: 1000) |
Natural Language Examples:
Returns: Formatted messages with timestamps, user mentions, thread indicators, reactions, and permalinks.
read_thread_messagesRead all messages in a conversation thread, including the parent message and all replies.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
channel_id | string | ✅ | Channel ID where the thread exists |
thread_ts | string | ✅ | Thread timestamp (the ts field of the parent message) |
Natural Language Examples:
Returns: Complete thread with parent message and all replies, formatted with timestamps and reactions.
get_channel_infoGet detailed metadata about a Slack channel.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
channel_id | string | ✅ | Slack channel ID |
Natural Language Examples:
Returns: Channel name, ID, creation date, member count, privacy status, topic, and purpose.
get_user_infoLook up detailed profile information for any Slack user.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
user_id | string | ✅ | Slack user ID (e.g., U1234567) |
Natural Language Examples:
Returns: User's real name, display name, email, title, status, timezone, and admin/bot flags.
list_my_channelsList all channels you're a member of, with support for different channel types.
Parameters:
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
types | string | ❌ | public_channel,private_channel | Comma-separated channel types |
Supported Types:
public_channel - Public channelsprivate_channel - Private channelsmpim - Group direct messagesim - Direct messagesNatural Language Examples:
Returns: Channel names, IDs, member counts, and privacy indicators.
search_my_conversationsSearch for messages across all conversations where you're mentioned or involved.
Parameters:
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
query | string | ✅ | - | Search terms |
count | number | ❌ | 20 | Number of results (max: 100) |
Natural Language Examples:
Returns: Matching messages with channel names, user info, timestamps, and permalinks.
get_message_permalinkGenerate a permanent, shareable link to a specific Slack message.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
channel_id | string | ✅ | Channel ID |
message_ts | string | ✅ | Message timestamp |
Natural Language Examples:
Returns: Permanent URL that works even if the workspace's URL changes.
Once configured in Claude Code, you can interact with your Slack workspace using natural language. Here are some example queries:
👤 "Show me the latest messages from #engineering"
🤖 [Claude fetches and displays recent messages with timestamps, users, and links]
👤 "What were the last 100 messages in the #product-updates channel from the past week?" 🤖 [Claude retrieves messages from the last 168 hours with limit of 100]
👤 "Read the full thread that starts at timestamp 1699564800.123456 in channel C1234567890"
🤖 [Claude displays the entire conversation thread with all replies]
👤 "List all channels I'm a member of"
🤖 [Claude shows all your public and private channels with member counts]
👤 "Search my Slack conversations for 'quarterly review'" 🤖 [Claude searches across all your messages and shows matches with context]
👤 "Find mentions of 'production deployment' in my conversations" 🤖 [Claude uses Slack search to find relevant messages]
👤 "Get info about channel C1234567890"
🤖 [Claude shows channel name, topic, member count, etc.]
👤 "Who is user U1234567?" 🤖 [Claude displays user profile with email, title, timezone]
👤 "Get me a permanent link to message 1699564800.123456 in #general" 🤖 [Claude generates a shareable permalink]
Catch up on a project:
👤 "Show me all messages from #project-alpha in the last 3 days"
Find that important decision:
👤 "Search for messages about 'API migration decision'"
Get onboarding context:
👤 "List all channels I'm in and show me the purpose of each"
When you're in a channel, the URL looks like:
https://your-workspace.slack.com/archives/C1234567890/p1234567890
The part after /archives/ is the channel ID: C1234567890
Ask Claude:
List all my channels
Your Slack app needs the proper OAuth scopes configured.
Solution:
Only the beginning is shown; read the rest in the repo