MCP Web Client
by AVGenAI
The MCP Web Client is a web application for managing Multimodal Conversational Protocol (MCP) servers and tools. It provides a single interface to configure, monitor, and manage multiple MCP servers and their associated tools.
Last updated: N/A
MCP Web Client
A web client for managing MCP (Multimodal Conversational Protocol) servers and tools. This application allows you to configure, monitor, and manage multiple MCP servers and their associated tools from a single interface.
Features
- š Manage multiple MCP servers in one place
- š ļø Configure and organize MCP tools (GitHub, Playwright, etc.)
- š Enable/disable tools as needed
- š¾ Persistent storage of your configuration
- š± Responsive design that works on desktop and mobile
Getting Started
Prerequisites
- Node.js (version 14 or later)
- npm or yarn
Installation
- Clone the repository:
git clone https://github.com/AVGenAI/mcp-web-client.git
cd mcp-web-client
- Install dependencies:
npm install
# or
yarn
- Run the development server:
npm run dev
# or
yarn dev
- Open http://localhost:3000 in your browser to see the application.
Usage
Adding a Server
- Navigate to the "Servers" page
- Click "Add New Server"
- Fill in the server details:
- Name: A friendly name for the server
- URL: The server's endpoint URL
- Description: (Optional) Additional information about the server
- Click "Add Server"
Adding Tools to a Server
- Navigate to a server's detail page
- Click "Add Tool"
- Fill in the tool details:
- Name: A name for the tool
- Type: The type of tool (GitHub, Playwright, etc.)
- Configuration: Tool-specific configuration settings
- Click "Add Tool"
Managing Tools
- Toggle tools on/off using the enable/disable button
- Delete tools you no longer need
- View tool configuration details
Project Structure
src/
āāā app/ # Next.js App Router
ā āāā page.tsx # Dashboard/home page (client component)
ā āāā layout.tsx # Root layout (server component)
ā āāā servers/ # Server management pages
ā āāā page.tsx # Server list page (client component)
ā āāā add/ # Add server page (client component)
ā āāā [id]/ # Server detail page (client component)
āāā components/ # Reusable components
ā āāā Sidebar.tsx # Navigation sidebar (client component)
ā āāā ClientLayout.tsx # Layout wrapper for client components
āāā store/ # State management
ā āāā mcpStore.ts # Zustand store for MCP data
āāā types/ # TypeScript type definitions
āāā mcp.ts # MCP type definitions
Client vs Server Components
This project follows Next.js App Router patterns:
- Server Components: Used for static parts and metadata (default in App Router)
- Client Components: Used for interactive elements and state management (marked with "use client" directive)
Components that use hooks, event handlers, or browser APIs must be client components. We've structured the app with:
- A server component root layout that includes metadata
- A client component wrapper (
ClientLayout
) that includes interactive elements - Client components for all pages that need to access state
Technologies Used
- Next.js - React framework with App Router
- React - UI library
- TypeScript - Type checking
- Zustand - State management
- CSS Modules - Component-scoped styling
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
This project is licensed under the MIT License - see the LICENSE file for details.