MCP Remote Server

Here's an enhanced README with more technical details based on the codebase:

mcp-remote-server

A configurable Model Context Protocol (MCP) server that dynamically loads its capabilities from a remote configuration. This leverages the ModelContextProtocol to create a local server that can communicate with your local MCP client.

Overview

mcp-remote-server acts as a bridge between MCP clients and remote APIs. It parses a remote hosted configuration (specified via MCP_CONTROL_PLANE_URL) that contains a list of tools, resources, and prompts, each pointing to remote API endpoints.

Key Features

  • Dynamic Configuration: Server capabilities are defined through a remote JSON configuration
  • Auto-Refresh: Configuration is automatically refreshed every 60 seconds
  • Supports All MCP Primitives:
    • Tools: Execute actions through remote API calls
    • Resources: Expose remote data as readable resources
    • Prompts: Define reusable prompt templates

Configuration Format

{ "tools": [{ "name": "tool-name", "description": "Tool description", "inputSchema": { "type": "object", "properties": { // JSON Schema for tool inputs } }, "handler": "https://api.example.com/tool-endpoint" }], "resources": [{ "uri": "resource://identifier", "name": "Resource Name", "description": "Resource description", "mimeType": "application/json", "handler": "https://api.example.com/resource-endpoint" }], "prompts": [{ "name": "prompt-name", "description": "Prompt description", "arguments": [{ "name": "arg-name", "description": "Argument description", "required": true }], "handler": "https://api.example.com/prompt-endpoint" }] }

Handler API Requirements

Remote handlers must return appropriately formatted responses:

  • Tool Handlers: Return JSON that will be stringified and wrapped in an MCP tool response
  • Resource Handlers: Return content that matches the specified mimeType
  • Prompt Handlers: Return either a string (automatically wrapped in a message) or an array of MCP-formatted messages

Installation

bun install

Usage

  1. Set your control plane URL:
export MCP_CONTROL_PLANE_URL="https://your-config-endpoint"
  1. Run the server:
bun run index.ts

Limitations

  • Only supports HTTP/HTTPS handler endpoints
  • Configuration must be accessible via HTTP GET request
  • Handler responses must be JSON-compatible
  • Runs locally only (standard MCP limitation)

This project was created using bun init in bun v1.1.32. Bun is a fast all-in-one JavaScript runtime. I chose Bun because it's fast and I wanted to try something a little different.

This project also uses Biome for type checking and linting. I chose Biome for the same reason as Bun. I wanted something different and I wish JS had a gofmt-like tool. This is a good start.

-
security - not tested
F
license - not found
-
quality - not tested

A configurable MCP server that dynamically loads capabilities from a remote configuration to bridge MCP clients with remote APIs for executing actions, accessing resources, and utilizing prompt templates.

  1. Overview
    1. Key Features
      1. Configuration Format
        1. Handler API Requirements
        2. Installation
          1. Usage
            1. Limitations