Skip to main content
Glama
sirmews

MCP Remote Server

by sirmews

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

Related MCP server: MCP-YNU FastMCP Server

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.

Related MCP Connectors

Related MCP Servers

  • F
    license
    C
    quality
    D
    maintenance
    This is an MCP server that facilitates building tools for interacting with various APIs and workflows, supporting Python-based development with potential for customizable prompts and user configurations.
    1
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    A dynamic MCP server implementation that automatically loads tools, resources, and prompts from their respective directories, allowing for easy extension and configuration.
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    A generic MCP server that dynamically exposes any OpenAPI-documented REST API to LLMs by auto-discovering endpoints. It provides tools for exploring API capabilities and making authenticated requests directly through natural language interfaces.
    2
    5 npm
    MIT