• 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 0a06544bda
Fix MCP tool naming for OpenRouter API compatibility
- Change tool name separator from dot to double underscore (server__tool)
- Update tool discovery to use server__tool_name format
- Update tool execution routing to parse double underscore separator
- Fix OpenRouter API error: tool names must match pattern '^[a-zA-Z0-9_-]{1,64}'

This resolves the silent failure when MCP tools were present in conversations.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-12 12:06:06 +01:00
docs Add comprehensive conversation system design documentation 2025-06-11 18:28:06 +01:00
src Fix MCP tool naming for OpenRouter API compatibility 2025-06-12 12:06:06 +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 complete InferenceProvider system with OpenRouter integration 2025-06-10 17:37:11 +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