Bridge Accessibility MCP Server
Provides tools for text simplification, translation, and image description via Google Gemini, enabling accessible content processing from any MCP client.
README
๐ Bridge
Every message, for everyone.
Bridge is an AI agent that makes Slack workspaces accessible for teammates who are blind, dyslexic, neurodivergent, or working in a second language โ automatically, and privately.
Slack ยท Bolt for JavaScript ยท Google Gemini ยท Model Context Protocol ยท Node.js 18+ ยท MIT License
Built for the Slack Agent Builder Challenge โ Agent for Good track.
๐ The problem
Slack is where work happens โ but not equally for everyone. Over 1.3 billion people live with a disability, and millions more work in a second language. Every day, in every workspace:
- A blind teammate hits a wall at every screenshot posted without a description.
- A dyslexic engineer rereads a jargon-dense announcement four times and still isn't sure what to do.
- A teammate working in their third language quietly drops out of a fast-moving thread.
They don't need a separate tool. They need the conversation itself to include them. That's Bridge.
โจ What it does
| Feature | Who it helps | How it works |
|---|---|---|
| ๐ผ๏ธ Automatic alt-text | Blind & low-vision users | Every image posted in a channel gets a faithful description threaded under it โ text transcribed, charts explained, error messages read out. No one has to remember to write it. |
| โ๏ธ Simplify with Bridge | Dyslexic, neurodivergent & non-native readers | A message shortcut rewrites any message in plain language, ending with a clear "๐ What you need to do." |
| ๐ Translate with Bridge | Non-native speakers | Set your language once (/bridge language Hindi), then translate any message in one click โ mentions, tone & formatting preserved. |
| ๐ Plain-language catch-ups | Anyone lost in long threads | Ask the Bridge assistant "catch me up on #project-x" and get an accessible digest with decisions, action items & citations. |
๐ Privacy by design: simplifications and translations are delivered ephemerally โ only the person who asked ever sees them. Nobody is publicly marked as needing an accommodation.
๐ง What makes it an agent, not a chatbot
Bridge's assistant runs an autonomous tool-use loop. You ask one question; Gemini decides which tools to call, in what order, and chains them โ no hard-coded paths.
You: "Find where we decided the launch date and explain it simply in Hindi."
Bridge (thinking, live status shown in Slack):
โ ๐ search_messages (Real-Time Search API)
โ ๐ read_channel_history
โ โ๏ธ simplify_text (via MCP)
โ ๐ translate_text (via MCP)
โ โ
replies in plain Hindi, with a citation to the original message
๐๏ธ Architecture

Bridge deliberately uses all three of the challenge's qualifying technologies:
- โก Slack AI capabilities โ a first-class AI assistant: assistant threads, suggested prompts, and live "thinking" status updates.
- ๐ MCP server integration โ Bridge's accessibility engine (
simplify_text,translate_text,describe_image) runs as a standalone MCP server. The Slack agent discovers and calls it as an MCP client at runtime โ and because it's standard MCP over stdio, the same server plugs into Claude Desktop, IDEs, or any other MCP client unchanged. Accessibility tools that work beyond Slack. - ๐ Real-Time Search API โ
assistant.search.contextgrounds every answer in real workspace messages, so the agent cites sources instead of hallucinating.
All natural-language work โ reasoning, vision (alt-text), simplification, translation โ is powered by Google Gemini.
๐ Quick start
Prerequisites: Node.js 18+, a Slack workspace where you can install apps, and a free Google AI Studio API key.
# 1. Clone & install
git clone https://github.com/<you>/bridge.git
cd bridge
npm install
# 2. Configure
cp .env.example .env # then fill in the 4 values (see below)
# 3. Run
npm start
You should see:
๐ MCP connected: bridge-accessibility server exposing [simplify_text, translate_text, describe_image]
โก Bridge is running (Socket Mode)
Create the Slack app (2 minutes)
- Go to api.slack.com/apps โ Create New App โ From a manifest.
- Pick your workspace and paste the contents of
manifest.json. Create. - Basic Information โ App-Level Tokens โ generate a token with the
connections:writescope โ this isSLACK_APP_TOKEN. - Install App โ copy the Bot User OAuth Token (
SLACK_BOT_TOKEN) and the Signing Secret from Basic Information.
Your .env
SLACK_BOT_TOKEN=xoxb-...
SLACK_APP_TOKEN=xapp-...
SLACK_SIGNING_SECRET=...
GEMINI_API_KEY=... # from aistudio.google.com/apikey (free tier)
๐ฎ Try it
| Do this | See this |
|---|---|
/invite @Bridge into a channel, then drop in a screenshot |
Bridge threads an alt-text description under it |
| Hover any message โ โฏ โ Simplify with Bridge | A private, plain-language version appears |
/bridge language Spanish, then โฏ โ Translate with Bridge |
The message, privately, in Spanish |
| Open Bridge in the sidebar โ "catch me up on #general" | A cited, plain-language digest |
๐งฉ Use the accessibility engine outside Slack
Because the engine is a real MCP server, you can add it to Claude Desktop (or any MCP client) and get the same tools anywhere:
// claude_desktop_config.json
{
"mcpServers": {
"bridge-accessibility": {
"command": "node",
"args": ["<path-to-repo>/src/mcp-server.js"],
"env": { "GEMINI_API_KEY": "..." }
}
}
}
๐ Project structure
src/
โโโ app.js # Slack app โ assistant, shortcuts, /bridge, auto alt-text
โโโ agent.js # Autonomous tool-use loop (Gemini) + MCP client
โโโ mcp-server.js # Bridge Accessibility MCP server (simplify/translate/describe)
โโโ gemini.js # Gemini calls, accessibility-tuned prompts
โโโ prefs.js # Per-user language preferences
manifest.json # Paste-ready Slack app configuration
architecture.png # Architecture diagram
๐ ๏ธ Built with
Node.js ยท Bolt for JavaScript (Socket Mode) ยท Slack AI assistant threads ยท Model Context Protocol (server + client) ยท Real-Time Search API ยท Google Gemini
๐ฑ Roadmap
- ๐๏ธ Voice-note transcription & summarization
- ๐ Per-user reading-level personalization
- ๐ค Sign-language avatar clips for key announcements
- ๐ช One-click install via the Slack Marketplace
๐ License
MIT โ free to use, adapt, and build on. Accessibility should be.
Accessibility isn't a feature you add later. With Bridge, it's built into the conversation itself.
๐ Bridge โ every message, for everyone.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.