• TypeScript 99.1%
  • CSS 0.4%
  • JavaScript 0.3%
  • HTML 0.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Jerome d9e63a790e
Fix model selector being empty after page refresh
## Problem
After page refresh, the model selector would be empty even though the
authentication provider was restored and models were loaded successfully.
Users had to manually click "reload models" to populate the selector.

## Root Cause
The context state wasn't being properly updated after models were loaded
during provider restoration. The provider had the models, but React
components weren't re-rendering to show them.

## Solution
- **Added forced re-render**: Added extra `setAuthStateVersion()` call after
  model loading to trigger React context update
- **Auto-load models on restore**: Provider restoration now automatically
  loads models and restores saved model selection
- **Improved error handling**: Better error handling during model restoration

## Technical Details
- Modified `restoreProviderWithModels()` to force context re-render
- Ensured model loading happens immediately when provider is restored
- Maintained existing model persistence functionality
- Cleaned up debugging logs

## User Experience
- ✅ **Seamless model selection**: Model selector is populated immediately after refresh
- ✅ **Persistent choice**: Previously selected model is automatically restored
- ✅ **No manual intervention**: No need to click "reload models" button

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-12 14:38:52 +01:00
docs Update conversation system documentation for tool naming fix 2025-06-12 12:08:10 +01:00
src Fix model selector being empty after page refresh 2025-06-12 14:38:52 +01:00
.eslintrc.cjs Implement complete InferenceProvider system with OpenRouter integration 2025-06-10 17:37:11 +01:00
.gitignore Implement complete InferenceProvider system with OpenRouter integration 2025-06-10 17:37:11 +01:00
index.html Implement complete InferenceProvider system with OpenRouter integration 2025-06-10 17:37:11 +01:00
package-lock.json Implement complete InferenceProvider system with OpenRouter integration 2025-06-10 17:37:11 +01:00
package.json Implement complete InferenceProvider system with OpenRouter integration 2025-06-10 17:37:11 +01:00
postcss.config.js Implement complete InferenceProvider system with OpenRouter integration 2025-06-10 17:37:11 +01:00
README.md Implement complete InferenceProvider system with OpenRouter integration 2025-06-10 17:37:11 +01:00
tailwind.config.js Implement complete InferenceProvider system with OpenRouter integration 2025-06-10 17:37:11 +01:00
tsconfig.json Implement improved auto-reconnect logic and fix TypeScript errors 2025-06-12 14:02:00 +01:00
tsconfig.node.json Implement complete InferenceProvider system with OpenRouter integration 2025-06-10 17:37:11 +01:00
vite.config.ts Implement complete InferenceProvider system with OpenRouter integration 2025-06-10 17:37:11 +01:00

Example Remote MCP Client

A React TypeScript application for connecting to multiple MCP (Model Context Protocol) servers and providing a conversational interface with tool calling capabilities.

Features

  • 🔗 Multi-server MCP connections (HTTP/SSE transports)
  • 🤖 Inference provider abstraction (starting with OpenRouter)
  • 💬 Conversational interface with agent loops
  • 🛠️ Real-time tool call visualization
  • 🔍 MCP debugging and message tracing
  • 📱 Responsive UI with left sidebar and chat interface

Development

Prerequisites

  • Node.js (v18 or higher)
  • npm, yarn, or pnpm

Getting Started

  1. Install dependencies:

    npm install
    
  2. Start the development server:

    npm run dev
    
  3. Open http://localhost:3000 in your browser

Available Scripts

  • npm run dev - Start development server
  • npm run build - Build for production
  • npm run preview - Preview production build
  • npm run lint - Run ESLint
  • npm run test - Run tests
  • npm run test:ui - Run tests with UI

Architecture

The application is built with a modular architecture using React hooks and providers:

  • InferenceProvider - Abstraction for LLM inference (OpenRouter, etc.)
  • MCPProvider - Multi-server MCP connection management
  • AgentLoop - Tool calling and conversation flow
  • UI Components - Modular, reusable interface components

Technology Stack

  • React 18 with TypeScript
  • Vite for build tooling
  • Tailwind CSS for styling
  • MCP TypeScript SDK for protocol implementation
  • Vitest for testing

Project Status

This is an active development project serving as both:

  • A public example implementation of MCP client features
  • A prototyping testbed for MCP protocol changes