{"passport":{"unfragile":{"@version":"1.0","version":"2026-05","artifact":{"id":"npm_npm-slack-relay-mcp","slug":"npm-slack-relay-mcp","name":"slack-relay-mcp","type":"mcp","url":"https://www.npmjs.com/package/slack-relay-mcp","page_url":"https://unfragile.ai/npm-slack-relay-mcp","categories":["mcp-servers"],"tags":["slack","mcp","cli","claude","agent","code-execution"],"pricing":{"model":"open_source","free":true,"starting_price":null},"status":"active","verified":false},"capabilities":[{"id":"npm_npm-slack-relay-mcp__cap_0","uri":"capability://tool.use.integration.slack.message.relay.via.mcp.protocol","name":"slack message relay via mcp protocol","description":"Implements the Model Context Protocol (MCP) as a transport layer to relay Slack messages and events into Claude or other LLM clients. Uses MCP's resource and tool abstractions to expose Slack API operations (send, read, list messages) as standardized LLM-callable functions, enabling bidirectional Slack integration without direct API key exposure to the LLM.","intents":["I want Claude to read and respond to Slack messages without managing Slack API keys in the LLM context","I need to build an agent that monitors Slack channels and takes actions based on message content","I want to expose Slack operations as tools that Claude can invoke during reasoning"],"best_for":["Teams building Claude-powered Slack bots or agents","Developers integrating Slack into multi-tool LLM workflows","Organizations wanting MCP-based Slack automation without custom API wrappers"],"limitations":["MCP protocol overhead adds latency per message relay compared to direct Slack SDK calls","Requires MCP server running as separate process — adds deployment complexity vs embedded SDK","No built-in message batching or streaming — each message is a discrete MCP call","Limited to Slack operations exposed via MCP schema — custom Slack workflows require extension"],"requires":["Node.js 18+","Slack workspace with bot token (xoxb-*)","MCP client implementation (Claude Desktop, custom LLM client, or cline)","npm or yarn package manager"],"input_types":["Slack channel IDs","message text","user IDs","timestamp strings"],"output_types":["JSON message objects","Slack API responses","structured tool call results"],"categories":["tool-use-integration","slack-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm_npm-slack-relay-mcp__cap_1","uri":"capability://automation.workflow.cli.based.slack.message.sending.and.retrieval","name":"cli-based slack message sending and retrieval","description":"Exposes a command-line interface for sending messages to Slack channels and retrieving message history without requiring LLM integration. Uses Node.js child process execution to invoke Slack API calls, supporting both synchronous message sends and asynchronous channel history queries with optional filtering by timestamp or user.","intents":["I want to send Slack messages from shell scripts or CI/CD pipelines without writing Node.js code","I need to retrieve Slack message history for analysis or logging from the command line","I want to integrate Slack notifications into existing bash/shell automation workflows"],"best_for":["DevOps engineers automating Slack notifications in CI/CD","System administrators building shell-based monitoring workflows","Developers prototyping Slack integrations without writing full Node.js applications"],"limitations":["CLI interface is synchronous — no streaming or real-time event listening from command line","Message formatting limited to plain text and basic Slack markdown from CLI args","No built-in retry logic or error recovery — failed sends require external shell scripting","Large message history retrieval may timeout if channel has thousands of messages"],"requires":["Node.js 18+","Slack bot token with chat:write and channels:history scopes","Bash or POSIX-compatible shell","npm package installed globally or via npx"],"input_types":["channel ID (string)","message text (string)","timestamp (ISO 8601 or Unix)","user ID (string)"],"output_types":["JSON message metadata","plain text confirmation","message history array"],"categories":["automation-workflow","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm_npm-slack-relay-mcp__cap_2","uri":"capability://code.generation.editing.typescript.api.for.slack.operations.with.type.safety","name":"typescript api for slack operations with type safety","description":"Exports a typed TypeScript/JavaScript API for Slack operations (send message, list channels, get message history, post reactions) with full type definitions and async/await support. Wraps the Slack Web API client with convenience methods that handle pagination, error handling, and response normalization, enabling type-safe Slack integration in Node.js applications.","intents":["I want to build a Node.js Slack bot with full TypeScript type checking","I need to compose multiple Slack operations (read, transform, send) in a single async workflow","I want to integrate Slack into an existing TypeScript application without managing raw API calls"],"best_for":["TypeScript developers building Slack bots or agents","Teams using TypeScript for backend automation","Developers integrating Slack into Node.js microservices"],"limitations":["Async/await model requires event loop — not suitable for synchronous-only environments","Type definitions are only as complete as the underlying Slack API client — some newer Slack features may lack types","No built-in rate limiting — high-volume operations require external throttling","Error handling is pass-through from Slack API — requires application-level retry logic"],"requires":["TypeScript 4.5+ or JavaScript (Node.js 18+)","Slack bot token with appropriate OAuth scopes","@slack/web-api package (peer dependency)","npm or yarn"],"input_types":["channel ID","message text","user ID","reaction emoji","timestamp"],"output_types":["Promise<Message>","Promise<Channel[]>","Promise<MessageHistory>","Promise<void>"],"categories":["code-generation-editing","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm_npm-slack-relay-mcp__cap_3","uri":"capability://planning.reasoning.claude.code.skill.integration.for.slack.automation","name":"claude code skill integration for slack automation","description":"Registers slack-relay-mcp as a Claude Code skill, allowing Claude's code interpreter to invoke Slack operations directly during code execution. When Claude writes or executes code, it can call Slack functions to send messages, read channels, or retrieve history as part of a multi-step reasoning workflow, with results fed back into Claude's context for further analysis.","intents":["I want Claude to write code that automatically sends Slack notifications based on analysis results","I need Claude to read Slack messages, analyze them, and take actions in response","I want Claude to orchestrate multi-step workflows that involve reading Slack, processing data, and posting results"],"best_for":["Teams using Claude Code Interpreter for data analysis and automation","Developers building Claude-powered agents that need Slack integration","Non-technical users leveraging Claude to automate Slack workflows"],"limitations":["Requires Claude Code Interpreter enabled — not available in all Claude contexts","Skill invocation adds latency to code execution (network round-trip to Slack API)","Limited to operations exposed via the skill — complex Slack workflows may require custom code","No persistent state between Claude sessions — each session starts fresh"],"requires":["Claude with Code Interpreter enabled","slack-relay-mcp installed and configured","Slack bot token with appropriate scopes","MCP server running and accessible to Claude"],"input_types":["natural language instructions to Claude","code written by Claude","Slack channel/message references"],"output_types":["code execution results","Slack API responses","analysis and summaries"],"categories":["planning-reasoning","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm_npm-slack-relay-mcp__cap_4","uri":"capability://memory.knowledge.mcp.resource.exposure.for.slack.channels.and.messages","name":"mcp resource exposure for slack channels and messages","description":"Exposes Slack channels and messages as MCP resources (read-only or read-write), allowing LLM clients to browse and reference Slack data through the MCP resource protocol. Resources are identified by URIs (e.g., slack://channel/C123456) and return structured JSON representations of channels, message threads, and user metadata, enabling LLMs to understand Slack context without making direct API calls.","intents":["I want Claude to understand the context of a Slack channel before responding to a question","I need to expose Slack message history as context to an LLM without embedding raw API calls","I want to build an LLM agent that can browse Slack channels and understand their purpose"],"best_for":["LLM application developers building context-aware Slack agents","Teams using MCP clients (Claude Desktop, cline) that need Slack context","Developers building multi-modal LLM applications that combine Slack with other data sources"],"limitations":["Resource protocol is read-heavy — write operations still require tool calls, not resource mutations","Large channels (10k+ messages) may exceed MCP message size limits — requires pagination","Resource URIs are opaque to the LLM — requires documentation or discovery mechanism","No real-time updates — resources reflect state at query time, not live streaming"],"requires":["MCP client that supports resource protocol (Claude Desktop 0.4+, cline, custom client)","Slack bot token with channels:read and chat:read scopes","slack-relay-mcp server running"],"input_types":["resource URI (slack://channel/C123456)","optional filters (timestamp range, user ID)"],"output_types":["JSON channel metadata","JSON message array","JSON user metadata"],"categories":["memory-knowledge","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm_npm-slack-relay-mcp__cap_5","uri":"capability://tool.use.integration.mcp.tool.schema.for.slack.operations.with.function.calling","name":"mcp tool schema for slack operations with function calling","description":"Defines MCP tool schemas for Slack operations (send_message, get_channel_history, list_channels, add_reaction) that LLM clients can invoke through the MCP function-calling protocol. Each tool includes input validation schemas, error handling, and response normalization, allowing LLMs to call Slack operations with type-safe arguments and receive structured results.","intents":["I want Claude to send a Slack message as part of an agent workflow","I need to expose Slack operations as callable tools that Claude can invoke with natural language","I want to build an LLM agent that can perform multiple Slack actions in sequence"],"best_for":["LLM agent developers building multi-step Slack workflows","Teams using Claude or other LLMs that support MCP tool calling","Developers building autonomous agents that need to take actions in Slack"],"limitations":["Tool schemas must be manually maintained — changes to Slack API require schema updates","No built-in tool composition — complex workflows require the LLM to chain multiple tool calls","Tool calling adds latency per operation (MCP round-trip + Slack API call)","Error handling is basic — complex error recovery requires LLM-level logic"],"requires":["MCP client that supports tool calling (Claude Desktop, Anthropic SDK, cline)","Slack bot token with appropriate OAuth scopes for each tool","slack-relay-mcp server running and configured"],"input_types":["tool name (string)","tool arguments (JSON object matching schema)"],"output_types":["tool result (JSON)","error message (string)"],"categories":["tool-use-integration","planning-reasoning"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm_npm-slack-relay-mcp__cap_6","uri":"capability://safety.moderation.slack.bot.token.authentication.and.credential.management","name":"slack bot token authentication and credential management","description":"Handles Slack bot token authentication through environment variables or configuration files, managing credentials securely without exposing them to LLM contexts. Uses the @slack/web-api client under the hood to authenticate with Slack's OAuth 2.0 flow, supporting token rotation and scope validation to ensure the bot has required permissions.","intents":["I want to securely manage Slack bot credentials in my MCP server without exposing them to Claude","I need to validate that my Slack bot has the required OAuth scopes before attempting operations","I want to rotate Slack bot tokens without restarting the MCP server"],"best_for":["DevOps engineers deploying slack-relay-mcp in production","Teams managing multiple Slack workspaces with different bot tokens","Security-conscious organizations requiring credential isolation"],"limitations":["Token rotation requires manual restart or external signal — no built-in hot-reload","Scope validation is static — changes to Slack workspace permissions require re-authentication","No built-in token refresh — long-lived tokens may expire without warning","Credentials stored in environment variables are vulnerable to process inspection — requires OS-level security"],"requires":["Slack bot token (xoxb-*) with appropriate OAuth scopes","Environment variable SLACK_BOT_TOKEN or config file","Node.js process with access to environment or filesystem"],"input_types":["bot token string","workspace ID (optional)"],"output_types":["authentication status (boolean)","scope list (array)"],"categories":["safety-moderation","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm_npm-slack-relay-mcp__cap_7","uri":"capability://data.processing.analysis.message.pagination.and.history.retrieval.with.filtering","name":"message pagination and history retrieval with filtering","description":"Implements cursor-based pagination for Slack message history retrieval, allowing efficient querying of large channels without loading all messages into memory. Supports filtering by timestamp range, user ID, or message type, with automatic cursor management and result normalization to handle Slack API's pagination format.","intents":["I want to retrieve the last 100 messages from a Slack channel efficiently","I need to find all messages from a specific user in a channel within a date range","I want to analyze Slack message history without overwhelming the API or memory"],"best_for":["Developers building Slack analytics or audit tools","Teams analyzing Slack message history for compliance or research","LLM agents that need to retrieve context from large Slack channels"],"limitations":["Slack API limits history queries to 90 days by default — older messages require workspace export","Pagination cursor is opaque — cannot jump to arbitrary message offsets","Large result sets require multiple API calls — adds latency proportional to message count","Filtering is applied client-side after retrieval — inefficient for highly selective queries"],"requires":["Slack bot token with channels:history scope","channel ID (string)","optional: timestamp range, user ID"],"input_types":["channel ID","limit (number, 1-1000)","oldest timestamp (Unix epoch)","latest timestamp (Unix epoch)","user ID (optional)"],"output_types":["message array (JSON)","pagination cursor (string)","has_more flag (boolean)"],"categories":["data-processing-analysis","search-retrieval"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm_npm-slack-relay-mcp__cap_8","uri":"capability://safety.moderation.error.handling.and.retry.logic.for.slack.api.calls","name":"error handling and retry logic for slack api calls","description":"Implements exponential backoff retry logic for transient Slack API errors (rate limits, temporary outages), with configurable retry counts and backoff strategies. Distinguishes between retryable errors (429 Too Many Requests, 5xx) and permanent errors (401 Unauthorized, 404 Not Found), providing detailed error messages and logging for debugging.","intents":["I want Slack operations to automatically retry on rate limits without failing immediately","I need detailed error messages when Slack operations fail permanently","I want to monitor and log Slack API errors for debugging and alerting"],"best_for":["Production deployments of slack-relay-mcp requiring reliability","Teams building high-volume Slack integrations","Developers debugging Slack API integration issues"],"limitations":["Exponential backoff can delay operations by up to several minutes for heavily rate-limited scenarios","Retry logic is synchronous — blocks the MCP server during backoff periods","No built-in circuit breaker — repeated failures don't prevent subsequent attempts","Error logging is basic — requires external monitoring for production alerting"],"requires":["slack-relay-mcp configured with retry settings","optional: logging framework (Winston, Pino, etc.)"],"input_types":["Slack API error response"],"output_types":["retry decision (boolean)","backoff delay (milliseconds)","error log entry (string)"],"categories":["safety-moderation","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm_npm-slack-relay-mcp__cap_9","uri":"capability://tool.use.integration.multi.workspace.slack.support.with.workspace.routing","name":"multi-workspace slack support with workspace routing","description":"Supports connecting to multiple Slack workspaces simultaneously by maintaining separate bot token credentials and routing operations to the correct workspace based on channel or user identifiers. Enables a single MCP server instance to serve as a bridge for multiple Slack workspaces, with workspace-aware resource URIs and tool parameters.","intents":["I want to manage multiple Slack workspaces from a single MCP server","I need Claude to interact with different Slack workspaces based on context","I want to build a Slack integration that works across our organization's multiple workspaces"],"best_for":["Organizations with multiple Slack workspaces","Managed service providers offering Slack integration to multiple customers","Teams building Slack apps that need to support workspace switching"],"limitations":["Workspace routing adds complexity to resource URIs and tool parameters","Each workspace requires a separate bot token — credential management scales linearly","No built-in workspace discovery — workspaces must be explicitly configured","Cross-workspace operations (e.g., copying messages between workspaces) require explicit logic"],"requires":["Multiple Slack bot tokens (one per workspace)","workspace configuration (mapping workspace IDs to tokens)","channel/user identifiers that include workspace context"],"input_types":["workspace ID (string)","channel ID (string)","user ID (string)"],"output_types":["workspace-scoped resource URI","workspace-scoped operation result"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0}],"trust":{"score":31,"verified":false,"data_access_risk":"high","permissions":["Node.js 18+","Slack workspace with bot token (xoxb-*)","MCP client implementation (Claude Desktop, custom LLM client, or cline)","npm or yarn package manager","Slack bot token with chat:write and channels:history scopes","Bash or POSIX-compatible shell","npm package installed globally or via npx","TypeScript 4.5+ or JavaScript (Node.js 18+)","Slack bot token with appropriate OAuth scopes","@slack/web-api package (peer dependency)"],"failure_modes":["MCP protocol overhead adds latency per message relay compared to direct Slack SDK calls","Requires MCP server running as separate process — adds deployment complexity vs embedded SDK","No built-in message batching or streaming — each message is a discrete MCP call","Limited to Slack operations exposed via MCP schema — custom Slack workflows require extension","CLI interface is synchronous — no streaming or real-time event listening from command line","Message formatting limited to plain text and basic Slack markdown from CLI args","No built-in retry logic or error recovery — failed sends require external shell scripting","Large message history retrieval may timeout if channel has thousands of messages","Async/await model requires event loop — not suitable for synchronous-only environments","Type definitions are only as complete as the underlying Slack API client — some newer Slack features may lack types","builder identity is not verified yet","no observed match outcomes yet"],"rank_breakdown":{"adoption":0.05,"quality":0.3,"ecosystem":0.48000000000000004,"match_graph":0.25,"freshness":0.75,"weights":{"adoption":0.25,"quality":0.25,"ecosystem":0.15,"match_graph":0.23,"freshness":0.12}},"observed_outcomes":{"matches":0,"success_rate":0,"avg_confidence":0,"top_intents":[],"last_matched_at":null},"maintenance":{"status":"active","updated_at":"2026-05-24T12:16:24.482Z","last_scraped_at":"2026-05-03T14:23:57.327Z","last_commit":null},"community":{"stars":null,"forks":null,"weekly_downloads":null,"model_downloads":null,"model_likes":null}},"distribution":{"claim_url":"https://unfragile.ai/submit?claim=npm-slack-relay-mcp","compare_url":"https://unfragile.ai/compare?artifact=npm-slack-relay-mcp"}},"signature":"f8Cu2ACqDVB4NuCjaco4MP+g9ZvV2lUTNGaYbWcAZPK/vFEDrgOSVVPuBVEAJoUUCPbmX1kbQ3t+lCNvnirIBw==","signedAt":"2026-06-20T19:00:07.053Z","signedBy":"unfragile.ai","version":1},"_links":{"self":"https://unfragile.ai/api/v1/passport/npm-slack-relay-mcp","artifact":"https://unfragile.ai/npm-slack-relay-mcp","verify":"https://unfragile.ai/api/v1/verify?slug=npm-slack-relay-mcp","publicKey":"https://unfragile.ai/api/v1/trust-passport-public-key","spec":"https://unfragile.ai/trust","schema":"https://unfragile.ai/schema.json","docs":"https://unfragile.ai/docs"}}