What is MCPlug?

MCPlug is a an open registry of remote MCP servers that allow anyone to deploy their own MCP server and use other’s MCP servers in their code (or soon in their favorite LLM client).

MCPlug is a hosting provider for MCP servers. When you publish a MCP server using our SDK, it will live forever on our infrastructure and will be available to anyone who wants to use it. You can, of course, publish an illimited number of versions of a MCP server. Each version, will stay available as long as we stay in business.

We provide a server sdk that streamlines the process of creating and publishing a MCP server.

The sdk is using the latest Streamable HTTP specification of 2025-03-26.

This documentation will guide you through the process of creating a MCP server and publishing it on MCPlug.

Simple example

This is what a MCP server looks like when using the MCPlug SDK.

import { z } from "zod";
import { tool } from "@mcplug/server";

export default {
  tools: {
    "get-weather": tool("Use this tool to get the weather in a given city")
      .input(
        z.object({
          city: z.string()
        })
      )
      .output(
        z.object({
          city: z.string(),
          temp: z.number(),
          unit: z.string(),
          condition: z.string()
        })
      )
      .handle(async ({ input }) => {
        return {
          city: input.city,
          temp: 20,
          unit: "C",
          condition: "sunny"
        };
      })
  }
};

Concepts

Tools

Learn more about tools

Prompts

Learn more about prompts (in progress)

Ressources

Learn more about ressources (in progress)

Development

Quick start

Quick start guide