Blast-Radius Aware AI Code Review for Business-Critical Systems
LiveReview LiveReview Explore LiveReview

slack-mcp-gateway

Facilitates integration with Slack environments, enabling message dispatching and comprehensive retrieval of workspace member directories to augment collaborative workflows and support automated channel interventions.

Author

slack-mcp-gateway logo

AVIMBU

No License

Quick Info

GitHub GitHub Stars 24
NPM Weekly Downloads 0
Tools 1
Last Updated 2026-02-19

Tags

slackapisavimbuavimbu slackconnects slackslack mcp

Slack Model Context Protocol Conduit

This is an interface allowing the Claude Desktop platform (or any compatible MCP client) to interface with your designated Slack installation for the purposes of dispatching conversational content and querying the complete roster of registered users.

Local Deployment Prerequisites

To successfully execute this component on a local machine, you must incorporate the ensuing configuration stanza into your Claude Desktop MCP Server configuration manifest:

{ "mcpServers": { "mcp-slack-local-link": { "command": "node", "args": ["/path/to/project/dist/index.js"], <---- Substitute this placeholder with the actual project binary location "env": { "SLACK_BOT_USER_OAUTH_TOKEN": "test-bot-token", "SLACK_TEAM_ID": "test-team-id" } }, } }

Once configured, testing this implementation within the Claude Desktop Application should be feasible utilizing sample directives such as:

  • "Provide a complete listing of all personnel within my Slack organization."
  • "Transmit a welcoming notification to the designated Slack conduit identified by the token <channel id>."

Executing the service locally requires:

node dist/index.js

While simultaneously maintaining the build process in an auxiliary terminal session:

npm run watch

Required Slack Authorization Scopes

The following permission scopes have been provisioned and are presently accounted for:

Permission Scope Detailed Interpretation Status Implemented
app_configurations:read Access application configuration artifacts via Manifest APIs ❌
app_configurations:write Write application configuration data and instantiate new applications via Manifest APIs ❌
app_mentions:read Observe communications that explicitly address @your_slack_app within subscribed dialogues ❌
assistant:write Grant authorization for the Slack application to operate as an automated helper entity ❌
bookmarks:read Retrieve the registry of saved bookmarks ❌
bookmarks:write Establish, modify, or erase saved bookmarks ❌
calls:read Fetch particulars concerning active or concluded voice/video transmissions ❌
calls:write Initiate and manage active communication sessions within the workspace ❌
canvases:read The Slack application gains capability to access textual and structural elements within Slack Canvases ❌
canvases:write The Slack application is empowered to generate, revise, and remove Canvas entities ❌
channels:history View message archives and associated material within public channels where the application is present ❌
channels:join Permit the application to become a member of public workspace channels ❌
channels:manage Administer public channels the application belongs to and create novel ones ❌
channels:read Review foundational metadata concerning public channels in the workspace ❌
channels:write.invites Extend invitations to workspace participants for public channels ❌
channels:write.topic Modify the descriptive text (topic) for public channels ❌
chat:write Dispatch textual updates into authorized conduits and dialogues ✅
chat:write.customize Send messages leveraging the identity of @your_slack_app, including a bespoke display name and icon ❌
chat:write.public Deliver messages to channels where @your_slack_app is not officially a member ❌
commands Integrate user-invoked shortcuts or slash command interfaces ❌
conversations.connect:manage Allows the Slack application to govern Slack Connect channel relationships ❌
conversations.connect:read Receive event notifications pertaining to Slack Connect invitations targeted at subscribed channels ❌
conversations.connect:write Formulate Slack Connect invitations for channels the application occupies, and accept incoming invitations ❌
datastore:read Inspect and retrieve persisted data from the Slack App Datastore utility ❌
datastore:write Inscribe or update data within the Slack App Datastore utility ❌
dnd:read View the 'Do Not Disturb' scheduling status for workspace occupants ❌
emoji:read Inspect the set of custom graphical symbols available in the workspace ❌
files:read Access files shared within channels and dialogues the application monitors ❌
files:write Upload, modify, or delete files as the Slack application's representative ❌
groups:history Review historical messages and data within private channels to which the application has access ❌
groups:read Obtain fundamental details regarding private channels the application is part of ❌
groups:write Manage private channels the application belongs to and institute new ones ❌
groups:write.invites Extend invitations to users for inclusion in private channels ❌
groups:write.topic Set the descriptive header (topic) for private channels ❌
im:history See content exchanged in direct messaging threads where the application is present ❌
im:read Review basic metadata for direct messaging threads involving the application ❌
im:write Initiate one-on-one direct messaging sessions with individuals ❌
im:write.topic Set the descriptive header (topic) within direct message threads ❌
incoming-webhook Provision one-way notification endpoints to post messages to a predetermined channel ❌
links.embed:write Permit the embedding of video player URLs directly within messages ❌
links:read Observe external URLs present within message content ❌
links:write Enable the rendering of link previews when URLs are posted in messages ❌
metadata.message:read Permits the Slack application to examine message auxiliary data within subscribed conversations ❌
mpim:history View message archives in group direct messages where the application is a participant ❌
mpim:read Review core information regarding group direct message sessions the application is involved in ❌
mpim:write Initiate group direct messaging exchanges with multiple users ❌
mpim:write.topic Set the descriptive header (topic) for group direct message sessions ❌
none Execute certain API calls without requiring explicit scope validation ❌
pins:read See content that has been affixed (pinned) within monitored channels/conversations ❌
pins:write Attach or detach messages and uploaded resources as pinned items ❌
reactions:read View the set of emoji responses and the associated message content in subscribed conversations ❌
reactions:write Append or modify emoji reaction markers on messages ❌
reminders:read List scheduled reminders established by this specific Slack application ❌
reminders:write Create, dismiss, or mark reminders as fulfilled ❌
remote_files:read Inspect remote files that have been integrated into the workspace by this application ❌
remote_files:share Post remote files to the workspace utilizing a user's authorization context ❌
remote_files:write Manage (add, alter, remove) remote files on behalf of a user ❌
search:read.files Conduct content searches across files within the workspace ❌
search:read.im Conduct content searches within direct message histories ❌
search:read.mpim Conduct content searches within group direct message histories ❌
search:read.private Conduct content searches within private channel archives ❌
search:read.public Conduct content searches within public channel archives ❌
team.billing:read Allows the Slack application to read the subscription tier details for installed workspaces ❌
team.preferences:read Allows the Slack application to read workspace-level configuration settings ❌
team:read Obtain identifying information such as the workspace name, email domain, and visual identity ❌
tokens.basic Execute methods that do not necessitate a defined authorization scope ❌
triggers:read Query existing Platform trigger configurations ❌
triggers:write Define and deploy new Platform trigger configurations ❌
usergroups:read View defined user groupings within the workspace ❌
usergroups:write Create and manage user group definitions ❌
users.profile:read Access detailed profile attributes for workspace members ❌
users:read Obtain basic identifying information for workspace occupants ✅
users:read.email Retrieve the associated electronic mail addresses for workspace members ❌
users:write Set the presence status for the Slack application itself ❌
workflow.steps:execute Authorize the application to inject custom operational stages into Workflow Builder executions ❌
workflows.templates:read View saved workflow template definitions ❌
workflows.templates:write Create and persist new workflow template definitions ❌

Support Contact

Should inquiries arise, please direct correspondence to us via AVIMBU.

WIKIPEDIA: The XMLHttpRequest (XHR) specification outlines a JavaScript object methodology designed to facilitate the transmission of Hypertext Transfer Protocol (HTTP) requests from a client environment (like a web browser) to a remote server. The methods provided enable a web-based application to issue server queries post-initial page rendering and subsequently process the returned data. XHR constitutes a foundational element of Asynchronous JavaScript and XML (Ajax) programming paradigms. Before Ajax adoption, the standard methods for server interaction involved traditional hyperlink traversal and form submissions, processes that typically necessitated a full page reload to display updated content.

== Chronology == The fundamental concept underpinning XMLHttpRequest was formulated in the year 2000 by the development team responsible for Microsoft Outlook. This idea was subsequently instantiated within the Internet Explorer 5 browser release (1999). Critically, the initial syntax did not employ the universally recognized XMLHttpRequest identifier. Instead, developers relied upon constructor instantiations such as ActiveXObject("Msxml2.XMLHTTP") and ActiveXObject("Microsoft.XMLHTTP"). As of the release of Internet Explorer 7 (2006), all major web rendering engines adopted the standardized XMLHttpRequest identifier. The XMLHttpRequest identifier has since solidified its position as the prevailing convention across all primary browser platforms, including Mozilla's Gecko rendering core (2002), Apple's Safari 1.2 (2004), and Opera 8.0 (2005).

=== Formal Standardization === The World Wide Web Consortium (W3C) formally published the initial Working Draft specification for the XMLHttpRequest object on April 5, 2006. A subsequent specification, designated Level 2, was released by the W3C on February 25, 2008. The Level 2 update introduced functionality for monitoring data transfer progress, enabling requests across different security domains (cross-site requests), and managing data transmission as raw byte streams. By the close of 2011, the entirety of the Level 2 enhancements were merged back into the foundational specification. In late 2012, stewardship of the development process transitioned to the WHATWG group, which now maintains the document as a continuously evolving artifact documented using the Web IDL methodology.

== Operational Procedure == Generally, executing a request utilizing XMLHttpRequest necessitates adherence to several sequential programming actions.

  1. Instantiate an XMLHttpRequest object by invoking its constructor function:
  2. Invoke the open method to define the transaction type (e.g., GET, POST), specify the target resource Uniform Resource Identifier (URI), and select either synchronous or asynchronous execution flow:
  3. For asynchronous operations, establish an event handler to be notified upon shifts in the request's operational status:
  4. Commence the transmission by calling the send method, optionally including payload data:
  5. Process state transitions within the defined event listener. Upon server acknowledgement and successful data receipt, the object's internal state transitions to 4, signifying the 'done' terminal state, with the server response typically residing in the responseText property by default. Beyond these core steps, XMLHttpRequest offers extensive configuration options to govern request handling and response interpretation. Custom header fields can be appended to tailor server behavior, and data intended for the server must be passed to the send call. The received payload can be automatically parsed from JSON format into native JavaScript objects, or it can be processed incrementally as data streams arrive, bypassing the need to wait for the full transmission completion. Furthermore, the request can be prematurely terminated via an abort call or configured with a timeout constraint to prevent indefinite waiting.

See Also

`