About React UI
React UI is an MCP server published by uzlov in the Developer Tools category: mCP server: React UI.
The repository has 1 stars and 0 forks, with the last commit 12 months ago. Six months or more without a commit doesn't mean the server is broken, but check the open issues before depending on it in production.
Install
git clone https://github.com/uzlov/mcp-server-react-uiThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Ask AI
Ask AI about React UI
Powered by Claude · Grounded in docs
Security checks
Static checks derived from the repository 7 days ago. Heuristics on the source, not an audit.
- ✓README presentThe repository ships documentation.
- ✓License declaredUsable under a stated license.
- !Tests presentNo tests found. Behaviour changes may go unnoticed between versions.
- ✓Dependencies pinnedA lockfile pins dependency versions.
- ✓No dynamic code executionSource scan found no eval, dynamic Function, or shell execution.
- !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.
README
MCP React UI Server
This example features a complete MCP (Model Context Protocol) remote server with UI capabilities using React and React Router V7. The server provides both text-based and interactive UI tools that can be used with MCP-compatible clients like Claude Desktop.
🚀 Features
- MCP Protocol Support: Implements the Model Context Protocol with 4 interactive tools
- Interactive UI Tools: Provides rich visualizations for task status and user profiles
- React Router 7: Full-stack routing with server-side rendering
- Session Management: Handles multiple concurrent MCP sessions
- UI Resources: Returns interactive UIs using
@mcp-ui/serverinstead of plain text - TypeScript: Full type safety throughout the codebase
- Tailwind CSS 4: Modern styling framework
🛠️ Tech Stack
- Core Framework: React Router 7, React 19, TypeScript, Vite
- MCP Integration:
@mcp-ui/server,@modelcontextprotocol/sdk - UI Libraries: Recharts for data visualization, Tailwind CSS for styling
- Server: Express.js with React Router integration
📋 MCP Tools
The server provides 4 MCP tools:
get_user_profile- Returns user data as textget_tasks_status- Returns textual task status summary for all team membersshow_task_status- Displays an interactive task dashboard UI with:- Team task status visualization
- Zoom capability by team member
- Interactive charts with tooltips
show_user_status- Shows user profile with:- Performance metrics and charts
- Task completion statistics
- Blocked tasks with priority indicators
- Nudge functionality
🚀 Getting Started
Prerequisites
- Node.js 18 or higher
- pnpm package manager
Installation
- Clone the repository
- Install dependencies:
pnpm install
Development
To run the server in development mode:
pnpm dev
The server will start on port 80 by default (configurable via VITE_PORT environment variable).
Production
To build and run the server in production mode:
pnpm build
pnpm start
Quick start
To build and run the server in docker container:
docker build -t mcp-server-react-ui -f Dockerfile.app.prod . && docker run --rm -p 3001:3001 mcp-server-react-ui
🔧 Configuration
Environment Variables
VITE_PORT- Port for the development server (default: 3001)VITE_HMR_PORT- Port for Hot Module Replacement (default: same as VITE_PORT)
📁 Project Structure
/mcp-server-react-ui/
├── express-server/
│ ├── index.ts # Main Express server
│ ├── handlers.ts # MCP request handlers
│ └── tools.ts # MCP tool definitions
├── react-router-server/
│ └── index.ts # React Router SSR setup
├── app/
│ ├── root.tsx # React Router root layout
│ ├── routes.ts # Route definitions
│ ├── routes/
│ │ ├── home.tsx # Home route
│ │ ├── task.tsx # Task status visualization route
│ │ └── user.tsx # User profile route
│ ├── graph/
│ │ └── graph.tsx # Task status graph component
│ └── user/
│ └── user.tsx # User profile component
├── public/ # Static assets (avatars)
├── package.json
├── vite.config.ts
├── react-router.config.ts
🔍 Core Concepts
UI Resources
The server uses createUIResource from @mcp-ui/server to return interactive UIs instead of plain text:
const resourceBlock = createUIResource({
uri: `ui://task-manager/${Date.now()}` as `ui://${string}`,
content: { type: 'externalUrl', iframeUrl: pickerPageUrl },
encoding: 'text',
});
Session Management
The server implements session-based transport management:
- Each MCP session is tracked using unique session IDs
- Transport instances are stored in memory using a map
- Each session has its own StreamableHTTPServerTransport instance
Server-Side Rendering
The application uses React Router with server-side rendering:
- Express integrates with React Router via react-router/express
- UI routes are rendered on the server for better performance
📊 Sample Data
The task status tools work with sample sprint data:
{
alice: { remaining: 12, toDo: 5, inProgress: 4, blocked: 3 },
bob: { remaining: 18, toDo: 11, inProgress: 4, blocked: 3 },
charlie: { remaining: 14, toDo: 6, inProgress: 5, blocked: 3 }
}
🔌 Integration Points
- MCP Client: Connects via
/mcpendpoints - Claude Desktop: Can invoke tools and display UI resources
- React Components: Rendered at
/taskand/userroutes - UI Components: Interactive charts and user profiles with message passing to parent
🤝 Contributing
Contributions, ideas, and bug reports are welcome! Feel free to check issues or create a new one.
📄 License
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
💡 About MCP-UI
mcp-ui brings interactive web components to the Model Context Protocol (MCP). It allows you to deliver rich, dynamic UI resources directly from your MCP server to be rendered by the client, taking AI interaction to the next level!
For more information about MCP-UI, visit the official documentation.
🚀 Supported Hosts
MCP-UI is supported by a growing number of MCP-compatible clients. Feature support varies by host:
README fetched from the repository 7 days ago. The original is authoritative.