MCP Server

MCP Server

MCP Server simplifies the implementation of the Model Context Protocol by providing a user-friendly API to create custom tools and manage server workflows efficiently.

Category
Visit Server

README

mcp-server

[!IMPORTANT] We moved the project to Agentico to better organize the tools and services for AI developers. We encourage you to use the new package and follow the updates on the Agentico's GitHub repository.

MCP Server is a simple server that implements the Model Context Protocol (MCP) to provide a simpler API to interact with the Model Context Protocol.

Why Use This Server?

In "La Rebelion" we are working on a set of tools and services to simplify processes and workflows for a better and more efficient developer experience. This server is part of a set of tools.

MCP is amazing, but it can be a bit confusing to get started. We have create a facade to simplify the process of creating a server that implements the Model Context Protocol. The pattern is simple, you just need to create the tools with your own logic, register the tools and start the server.

Steps to Create a New Server

In the future we will provide a CLI to create a new server similar to MCP create server, but for now you can follow the steps below based on the official documentation to create a server.

mkdir -p my-server/src
cd my-server/
yarn init -y
yarn add @modelcontextprotocol/sdk zod zod-to-json-schema
yarn add -D @types/node typescript
# Here lies the magic
yarn add @la-rebelion/mcp-server

You need to update the package.json file and create a tsconfig.json file.

Getting Started

Implement your tools with your custom logic, and register them in the MCPServer. Here is an example of a simple echo tool:

import { Tool, ToolSchema } from "@la-rebelion/mcp-server";

export class EchoTool extends Tool {
  toolSchema: ToolSchema = { 
    name: "echo",
    description: "Echoes the input message",
    schema: { // the schema for the parameters needed by the tool
      type: "object",
      properties: {
        message: { type: "string" },
      },
      required: ["message"],
    },
  };

  /**
   * Your logic here, implement the execute method to define the tool behavior
   * @param input The input message - use the schema to define the input type
   * @returns In the example, we are echoing the message
   */
  async execute(input: any): Promise<any> {
    // This is a simple echo tool demo, nothing fancy, just echoing the message
    return Promise.resolve({
      content: [
        {
          type: "text",
          text: `${input.message}` 
        }
      ]
      });
  }
}

Create an index.ts file with the following content:

#!/usr/bin/env node
import { MCPServer } from '@la-rebelion/mcp-server'
import { EchoTool } from "./tools/EchoTool.js";

const myServer = new MCPServer('My MCP Server', '1.0.0');

async function main() {
  // Register tools
  myServer.registerTool("echo", EchoTool);
  await myServer.run();
}

main().catch((error) => {
  console.error("Server error:", error);
  process.exit(1);
});

That's it! You have created a simple server that implements the Model Context Protocol. Test it with Claude Desktop or any other client that supports MCP.

Build the project with the following command:

yarn build

You can start the server, but has no logic yet, you can test it with the following command:

yarn start
# or
node build/index.js

That's it, start creating your own tools and services to simplify your workflows and processes.

Go Rebels! ✊🏻

UML Diagram

UML Diagram

  • MCPServer: Registers the tools that will be used by the server.
  • Tool: Base class for all tools, containing common properties and methods. execute is the method that will be called when the tool is invoked, implement your logic here.
  • EchoTool: Specific implementation of a tool, extending the Tool class and defining its own schema and initialization logic.
  • EchoSchema: Defines the structure of the input for the EchoTool.
  • EchoInput: Type definition for the input based on the schema.

This pattern allows for a flexible and extensible way to manage and implement tools using the MCPServer and Tool classes.

Support Us

If you find this useful, please consider supporting us by starring this repository, by contributing to the project or by becoming a sponsor.

You can find more information on how to support us at La Rebelion GitHub Sponsors. Also buying us a coffee, PayPal are great ways to support us or purchasing "La Rebelion" merch.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured