logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

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

`