Slack MCP Server
Servidor de protocolo de contexto del modelo Slack
Este es un conector que permite que Claude Desktop (o cualquier cliente MCP) interactúe con su espacio de trabajo de Slack para publicar mensajes y consultar una lista de todos los usuarios.
Desarrollo local
Para ejecutar este cliente localmente, agregue la siguiente configuración a su archivo de configuración de Claude Desktop MCP Server:
{
"mcpServers": {
"mcp-slack-local": {
"command": "node",
"args": ["/path/to/project/dist/index.js"], <---- replace this with your project path
"env": {
"SLACK_BOT_USER_OAUTH_TOKEN": "test-bot-token",
"SLACK_TEAM_ID": "test-team-id"
}
},
}
}Después de esto, deberías poder probar esta implementación en tu aplicación de escritorio Claude usando indicaciones de ejemplo como:
"¿Puedes enumerar todos los usuarios de mi equipo de Slack?"
"¿Puedes enviar un mensaje de bienvenida a mi canal de Slack con el ID
<channel id>?"
Ejecutando el servidor localmente:
node dist/index.jsCon la construcción en otra terminal
npm run watchRelated MCP server: Slack MCP Server by CData
Ámbitos de permisos de Slack
Los siguientes permisos ya están implementados:
Permiso | Descripción | Implementado |
configuraciones_de_aplicación:leer | Leer la información de configuración de la aplicación a través de las API del manifiesto de la aplicación | ❌ |
configuraciones_de_aplicación:escribir | Escriba información de configuración de la aplicación y cree aplicaciones a través de las API de manifiesto de la aplicación | ❌ |
menciones_de_la_aplicación:leer | Ver mensajes que mencionan directamente a @your_slack_app en las conversaciones en las que participa la aplicación | ❌ |
asistente:escribir | Permita que su aplicación Slack actúe como un asistente de IA | ❌ |
marcadores:leer | Lista de marcadores | ❌ |
marcadores:escribir | Crear, editar y eliminar marcadores | ❌ |
llamadas:leer | Ver información sobre llamadas en curso y pasadas | ❌ |
llamadas:escribir | Iniciar y administrar llamadas en un espacio de trabajo | ❌ |
lienzos:leer | Su aplicación Slack podrá acceder al contenido de los lienzos creados dentro de Slack. | ❌ |
lienzos:escribir | Su aplicación Slack podrá crear, editar y eliminar lienzos. | ❌ |
canales:historial | Ver mensajes y otro contenido en canales públicos a los que se agregó tu aplicación Slack | ❌ |
canales:unirse | Unirse a canales públicos en un espacio de trabajo | ❌ |
canales:administrar | Administra los canales públicos a los que se ha agregado tu aplicación Slack y crea otros nuevos | ❌ |
canales:leer | Ver información básica sobre los canales públicos en un espacio de trabajo | ❌ |
canales:escribir.invitaciones | Invitar a miembros a canales públicos | ❌ |
canales:escribir.tema | Establecer la descripción de los canales públicos | ❌ |
chat:escribir | Publicar mensajes en canales y conversaciones aprobados | ✅ |
chat:escribir.personalizar | Envía mensajes como @your_slack_app con un nombre de usuario y un avatar personalizados | ❌ |
chat:escribir.público | Enviar mensajes a canales de los que @your_slack_app no es miembro | ❌ |
comandos | Agregue atajos y/o comandos de barra que las personas puedan usar | ❌ |
conversaciones.conectar:administrar | Permite que tu aplicación Slack administre los canales de Slack Connect | ❌ |
conversaciones.conectar:leer | Recibe eventos de invitación de Slack Connect enviados a los canales en los que se encuentra tu aplicación Slack | ❌ |
conversaciones.conectar:escribir | Crea invitaciones de Slack Connect para los canales a los que se ha agregado tu aplicación de Slack y acepta invitaciones enviadas a tu aplicación de Slack. | ❌ |
almacén de datos:leer | Ver y visualizar datos del almacén de datos de aplicaciones de Slack | ❌ |
almacén de datos: escritura | Escribir datos en el almacén de datos de la aplicación Slack | ❌ |
dnd:leer | Ver la configuración de No molestar para las personas en un espacio de trabajo | ❌ |
emoji:leer | Ver emojis personalizados en un espacio de trabajo | ❌ |
archivos:leer | Ver archivos compartidos en canales y conversaciones a los que se agregó tu aplicación Slack | ❌ |
archivos:escribir | Sube, edita y elimina archivos como tu aplicación de Slack | ❌ |
grupos:historia | Ver mensajes y otro contenido en canales privados a los que se agregó tu aplicación Slack | ❌ |
grupos:leer | Ver información básica sobre los canales privados a los que se ha agregado tu aplicación Slack | ❌ |
grupos:escribir | Administra los canales privados a los que se ha agregado tu aplicación Slack y crea otros nuevos | ❌ |
grupos:escribir.invitaciones | Invitar a miembros a canales privados | ❌ |
grupos:escribir.tema | Establecer la descripción de los canales privados | ❌ |
soy:historia | Ver mensajes y otro contenido en los mensajes directos a los que se agregó tu aplicación Slack | ❌ |
im:read | Ver información básica sobre los mensajes directos a los que se agregó tu aplicación Slack | ❌ |
im:escribir | Iniciar mensajes directos con personas | ❌ |
im:write.topic | Establecer la descripción en los mensajes directos | ❌ |
webhook entrante | Crea webhooks unidireccionales para publicar mensajes en un canal específico | ❌ |
enlaces.incrustar:escribir | Incrustar URL de reproductores de video en mensajes y superficies de aplicaciones | ❌ |
enlaces:leer | Ver URL en los mensajes | ❌ |
enlaces:escribir | Mostrar vistas previas de URL en los mensajes | ❌ |
metadatos.mensaje:leído | Permite que tu aplicación Slack lea los metadatos de los mensajes en los canales a los que se ha agregado tu aplicación Slack. | ❌ |
mpim:historial | Ver mensajes y otro contenido en mensajes directos grupales a los que se agregó tu aplicación Slack | ❌ |
mpim:leer | Ver información básica sobre los mensajes directos grupales a los que se agregó tu aplicación Slack | ❌ |
mpim:escribir | Iniciar mensajes directos grupales con personas | ❌ |
mpim:escribir.tema | Establecer la descripción en los mensajes directos del grupo | ❌ |
ninguno | Ejecutar métodos sin necesidad de un ámbito | ❌ |
pines:leer | Ver contenido fijado en canales y conversaciones a los que se agregó tu aplicación Slack | ❌ |
pines:escribir | Agregar y eliminar mensajes y archivos fijados | ❌ |
reacciones:leer | Vea las reacciones de emoji y su contenido asociado en los canales y conversaciones a los que se agregó su aplicación Slack | ❌ |
reacciones:escribir | Agregar y editar reacciones de emojis | ❌ |
recordatorios:leer | Ver recordatorios creados por tu aplicación Slack | ❌ |
recordatorios:escribir | Agregar, eliminar o marcar recordatorios como completos | ❌ |
archivos_remotos:leer | Ver archivos remotos agregados por la aplicación en un espacio de trabajo | ❌ |
archivos_remotos:compartir | Compartir archivos remotos en nombre de un usuario | ❌ |
archivos_remotos:escribir | Agregar, editar y eliminar archivos remotos en nombre de un usuario | ❌ |
búsqueda:leer.archivos | Buscar el contenido de un espacio de trabajo en los archivos | ❌ |
búsqueda:read.im | Buscar el contenido de un espacio de trabajo en mensajes directos | ❌ |
búsqueda:read.mpim | Buscar el contenido de un espacio de trabajo en mensajes directos grupales | ❌ |
búsqueda:leer.privado | Buscar el contenido de un espacio de trabajo en canales privados | ❌ |
búsqueda:leer.público | Buscar el contenido de un espacio de trabajo en canales públicos | ❌ |
equipo.facturación:leer | Permite que su aplicación Slack lea el plan de facturación de los espacios de trabajo en los que se ha instalado su aplicación Slack. | ❌ |
equipo.preferencias:leer | Permite que su aplicación Slack lea las preferencias de los espacios de trabajo en los que se ha instalado su aplicación Slack. | ❌ |
equipo:leer | Ver el nombre, el dominio de correo electrónico y el ícono de los espacios de trabajo a los que está conectada tu aplicación Slack | ❌ |
tokens.basic | Ejecutar métodos sin necesidad de un ámbito | ❌ |
disparadores:leer | Leer nuevos activadores de la plataforma | ❌ |
disparadores: escribir | Crear nuevos activadores de plataforma | ❌ |
grupos de usuarios:leer | Ver grupos de usuarios en un espacio de trabajo | ❌ |
grupos de usuarios: escribir | Crear y administrar grupos de usuarios | ❌ |
usuarios.perfil:leer | Ver detalles del perfil de las personas en un espacio de trabajo | ❌ |
usuarios:leer | Ver personas en un espacio de trabajo | ✅ |
usuarios:leer.correo electrónico | Ver direcciones de correo electrónico de personas en un espacio de trabajo | ❌ |
usuarios:escribir | Configurar presencia para tu aplicación Slack | ❌ |
flujo de trabajo.pasos:ejecutar | Agregue pasos que las personas puedan usar en Workflow Builder | ❌ |
flujos de trabajo.plantillas:leer | Leer una plantilla de flujo de trabajo | ❌ |
flujos de trabajo.plantillas:escribir | Escribe una plantilla de flujo de trabajo | ❌ |
Contacto
Si tiene preguntas, no dude en contactarnos a través de AVIMBU .
Available Tools
2 toolsslack_get_usersB
Get a list of all users in the workspace with basic information
| Name | Required | Description | Default |
|---|---|---|---|
| cursor | No | Pagination cursor for next page of results | |
| limit | No | Maximum number of users to return (default 100, max 200) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. While it indicates this is a read operation ('Get'), it doesn't mention important behavioral aspects like authentication requirements, rate limits, error conditions, or what 'basic information' specifically includes. For a tool that presumably accesses workspace data, this leaves significant gaps in understanding how it behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that communicates the core purpose without any wasted words. It's appropriately sized for a straightforward list operation and front-loads the essential information. Every word earns its place in this concise formulation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a relatively simple list operation with 2 parameters and no output schema, the description provides adequate but minimal context. It covers what the tool does but lacks important operational details like authentication requirements, rate limits, and what specific user information is returned. Without annotations or output schema, the description should ideally provide more complete guidance about the tool's behavior and results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with both parameters ('cursor' and 'limit') fully documented in the schema. The description doesn't add any additional parameter semantics beyond what's already in the schema. According to the scoring rules, when schema coverage is high (>80%), the baseline is 3 even with no parameter information in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('list of all users in the workspace'), making the purpose immediately understandable. It specifies 'with basic information' which adds useful context about the scope of returned data. However, it doesn't explicitly differentiate from the sibling tool 'slack_post_message', which is a completely different operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. There's no mention of prerequisites, appropriate contexts, or comparison with the sibling 'slack_post_message' tool. The agent must infer usage purely from the tool name and description without any explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
slack_post_messageC
Post a new message to a Slack channel
| Name | Required | Description | Default |
|---|---|---|---|
| channel_id | Yes | The Channel ID to post the message to | |
| text | Yes | The message text to post |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. While 'Post a new message' implies a write operation, it doesn't mention authentication requirements, rate limits, error conditions, or what happens if the channel doesn't exist. This leaves significant behavioral gaps for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that communicates the core purpose without any wasted words. It's appropriately sized for a simple tool and gets straight to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is insufficient. It doesn't explain what the tool returns, error conditions, authentication requirements, or any behavioral details beyond the basic action. Given the complexity of posting to Slack (which involves permissions, formatting, etc.), more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with both parameters clearly documented in the schema. The description doesn't add any additional semantic context about the parameters beyond what's already in the schema, so it meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Post a new message') and target resource ('to a Slack channel'), making the purpose immediately understandable. However, it doesn't differentiate from its sibling tool 'slack_get_users' beyond the obvious difference in function, which is why it doesn't reach a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives or any prerequisites for usage. It simply states what the tool does without context about appropriate scenarios or limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
The two tools have clearly distinct purposes: one retrieves user information and the other posts messages, with no overlap in functionality. An agent can easily differentiate between them based on their descriptions.
Both tools follow a consistent 'slack_verb_noun' pattern (slack_get_users, slack_post_message), using snake_case and clear action-object naming. This makes them predictable and easy to understand.
With only 2 tools, the server feels severely under-scoped for a Slack integration, lacking essential operations like reading messages, managing channels, or handling reactions. This minimal set limits agent capabilities significantly.
The tool surface is highly incomplete for a Slack server, missing core functionalities such as reading channel messages, listing channels, updating or deleting messages, and interacting with threads. This will cause frequent agent failures in typical Slack workflows.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Connect Claude AI to UluP Spaces via MCP — create projects, nodes, and tasks with OAuth 2.0.
Talk to your public-facing AI from any MCP client — Claude, ChatGPT, Cursor, Cline, Windsurf.
MCP connector that lets ChatGPT list, search, and run your Apple Shortcuts via a local Mac agent
Connect Claude to your Platform7n workspaces — chat, links, and tasks. One-click OAuth.
Related MCP Servers
- -licenseNot gradedqualityAmaintenanceMCP Server for the Slack API, enabling Claude to interact with Slack workspaces.87,50690,042MIT
- AlicenseNot gradedqualityDmaintenanceThis read-only MCP Server allows you to connect to Slack data from Claude Desktop through CData JDBC Drivers. For full CRUD support, check out the first managed MCP platform: CData Connect AI (https://www.cdata.com/ai/).MIT
- AlicenseNot gradedqualityBmaintenanceEnables MCP-compatible clients to interact with Slack through Web API tools and subscribe to inbound Slack messages via Socket Mode notifications.202MIT
- FlicenseBqualityAmaintenanceMCP server for Slack workspace integration, exposing 40+ Slack operations as tools for Claude Desktop and providing a clean async Python API.641
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/AVIMBU/slack-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server